< návrat zpět

MS Excel


Téma: VBA výpočet ve 3D matici rss

Zaslal/a 15.7.2019 10:29

Ahoj, mám sešit s maticemi na 3 listech, kde se na posledním listu (List3) počítá hodnota buňky (matice začíná v buňce D5) v závislosti na hodnotách na předchozích listech:

==(IF('List2'!D5>'List1'!$B5;(('List2'!D5-'List1'!$B5)/'List2'!D5)*'List1'!D5;0))

Rád bych namísto rozkopírování vzorce do všech buněk využil makro, ale zatím neúspěšně. Hlásí chybu 'mismatch' na řádku, který je tučně:

Sub matice()

Dim f As Single
Dim g As Single
Dim h As Single

Dim i As Integer
Dim j As Integer

Dim a As Integer
Const b As Integer = 2
Dim c As Integer
Dim d As Integer

For i = 5 To 7
a = ActiveCell.Row
For j = 11 To 14
c = ActiveCell.Column
d = ActiveCell.Column - 2

f = Worksheets("List2").Cells(a, c).Value
g = Worksheets("List1").Cells(b, d).Value
h = Worksheets("List1").Cells(a, c).Value

Cells(i, j).Formula = "=IF(f>g,((f-g)/f)*h,0)"
Next j
Next i
End Sub

Výsledná matice je mnohem větší, velikost 3*4 je jen testovací. Mám Excel 2016.
Mým cílem je urychlit výpočet a zmenšit velikost souboru. Prosím tedy o radu, kde by mohla být chyba. Případně i o navedení na jinou, jednodušší cestu. Díky

Zaslat odpověď >

#043744
avatar
=IF(f>g,((f-g)/f)*h,0)
toto v buňce listu nefunguje.

Cells(i, j).Formula = "=...nutno napsat vzorec, který je v listu funkční..."citovat
#043745
avatar

c = ActiveCell.Column
d = ActiveCell.Column - 2

f = Worksheets("List2").Cells(a, c).Value
g = Worksheets("List1").Cells(b, d).Value


Jestliže mám při spuštění makra aktivní buňku ve sloupci A tak ActiveCell.Column = 1 a potom proměnná d má hodnotu -1. Pak samozřejmě nemohu do g načítat hodnotu ze sloupce -1.citovat
#043746
avatar
A pokud to"Hlásí chybu 'mismatch' na řádku, který je tučně".

tak pravděpodobně je v buňce Worksheets("List1").(Cells(b, d) textová hodnota místo číselné.citovat
#043748
avatar
Cells(i, j).Formula = "=IF(" & f & ">" & g & "," & ((f - g) / f) * h & ",0)"citovat

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

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21