簡體   English   中英

用VBA將公式插入Excel

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM