[英]insert formula with vba into excel
我需要通過VBA將此公式添加到一系列行中
=WENN(ISTNV(VERWEIS(2;1/(Januar!A1:A99&"*"&Januar!B1:B99=A16&"*"&B16);Januar!D:D));" ";VERWEIS(2;1/(Januar!A1:A99&"*"&Januar!B1:B99=A16&"*"&B16);Januar!D:D))
它的德語,但唯一重要的是,我需要用循環變量i替換16
For i = 17 To Rows.Count
Cells(14, i).FormulaLocal = "=WENN(ISTNV(VERWEIS(2;1/(Januar!A1:A99&"*"&Januar!B1:B99=A"&i"&""*""&B""&i"");Januar!D:D));"" "";VERWEIS(2;1/(Januar!A1:A99&""*""&Januar!B1:B99=A""i""&""*""&B""i"");Januar!D:D))"
Next
我讀了一些文章,但我似乎沒有用:/
公式字符串是用雙引號"
括起來的字符串文字。我們可以使用&
將變量連接到該字符串中。如果通過重復轉義轉義,我們可以在字符串中使用雙引號。
例子:
Dim s as String
Dim i as Integer
i = 123
s = "Test " & i & " Test"
s = "Test """ & i & """ Test"
在您的特殊情況下,額外的困難是您不僅在VBA
具有&
作為串聯運算符,而且在公式字符串中也具有。 這導致混亂。 我建議首先在字符串變量中創建公式字符串。 因此,您可以Debug.print
此字符串並檢查。
For i = 17 To Rows.Count
sFormula = "=WENN(ISTNV(VERWEIS(2;1/(Januar!A1:A99&""*""&Januar!B1:B99=A" & i & "&""*""&B" & i & ");Januar!D:D));"" "";VERWEIS(2;1/(Januar!A1:A99&""*""&Januar!B1:B99=A" & i & "&""*""&B" & i & ");Januar!D:D))"
Debug.Print sFormula
Cells(i, 14).FormulaLocal = sFormula
Next
順便說一句:在Cells
,第一個參數是行索引,第二個參數是列索引。 因此,根據您的代碼( i
是行號),它應該是Cells(i, 14)
。
順便說一句:我建議不要使用FormulaLocal
而是使用Formula
和英語函數名稱以及英語公式表示法(逗號作為參數定界符,而不是分號)。 這將與語言環境無關。
Axel給您解決方案
在此基礎上,您可能希望采用FomulaLocalR1C1
屬性來簡化公式:
例如:
=A" & i & "&""*""&B" & i
會成為:
"=RC1 & ""*"" & RC2"
要么
"=VERKETTEN(RC1;""*"";RC2)"
在這種情況下,您必須將所有范圍引用都轉換為R1C1
表示法,以便:
Januar!A1:A99
Januar!B1:B99
成為:
Januar!R1C1:R99C1
Januar!R1C2:R99C2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.