< 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 5x)
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

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje