< návrat zpět

MS Excel


Téma: Přepis maticového vzorce do VBA rss

Zaslal/a 10.8.2023 12:21

Ahoj,

Prosím jak by se přepsal vzorec níže do VBA?

=IFERROR(INDEX($J$1:$AW$1;POZVYHLEDAT(PRAVDA;J4:AW4<0;0));"No Shortage")

Děkuji

Zaslat odpověď >

#055299
elninoslov
Príkladov môže byť množstvo. Ide aj o to, koľkokrát to budete robiť. Napr:
Sub Makro1()
Dim Vysledok
Vysledok = Evaluate("=IFERROR(INDEX($J$1:$AW$1,MATCH(TRUE,J4:AW4<0,0)),""No Shortage"")")
wsList.Range("K7").Value = Vysledok
End Sub

Sub Makro2()
Dim Vysledok, Hladaj(), i As Long
Vysledok = "No Shortage"
Hladaj = wsList.Range("J4:AW4").Value
For i = 1 To UBound(Hladaj, 2)
If Hladaj(1, i) < 0 Then
Vysledok = wsList.Range("J1:AW1").Cells(i).Value
Exit For
End If
Next i
wsList.Range("L7").Value = Vysledok
End Sub
citovat
#055300
avatar
Děkuji. Šlo by to, aby v te buňce zůstal vzorec? Ta první verze mi to vloží jako hodnoty.citovat
#055301
elninoslov
???
Čože???
Aká prvá verzia to vloží ako hodnoty?
Veď obe verzie makra vložia do bunky výslednú hodnotu.

Čo chcete aby bolo vo výslednej bunke?
-výsledná hodnota z $J$1:$AW$1 podľa nájdeného indexu J4:AW4<0 (alebo "No Shortage")
-vzorec "=IFERROR(INDEX($J$1:$AW$1;POZVYHLEDAT(PRAVDA;J4:AW4<0;0));"No Shortage")"
???

Chcete aby makro vložilo do bunky vzorec?
Sub Makro3()
wsList.Range("M7").FormulaArray = "=IFERROR(INDEX($J$1:$AW$1,MATCH(TRUE,J4:AW4<0,0)),""No Shortage"")"
End Sub
Příloha: zip55301_makrovzorechodnota.zip (18kB, staženo 4x)
citovat
#055302
avatar
Ano, potřeboval jsem tam nechat vzorec, protože data občas přepisuji, tak potřebuji, aby se to měnilo. FormulaArray pomohlo. Děkujicitovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse