Excel VBA For循环根据循环中的数字在单元格中编写公式
Excel VBA For Loop writing Formula in cells depending on the number in the loop
我正在尝试在单元格中编写一个 Forumla(从单元格 A2 到 AI,其中 I 是 For 循环中的数字)。
要写的公式必须对应单元格M2到MI,其中I是For循环中的数字。
我可以自己写 sheet-reference:
ws.Cells(1 + I, KolonneForX + 1).Formula = " ='" & ws.Name & "'"
它在我想要的单元格中给出了公式 ='Ark1'
(自己)。
以及要读取的正确单元格名称:
ws.Cells(1 + I, KolonneForX + 2).Formula = "=CONCATENATE(""M"",TEXT(" & I & "+1,""0""))"
它在我想要的单元格中给出了公式 MI
(通过它自己,I 的相应数字)。
但是当我尝试将它们两个放在一起时,我无法将其放入 运行 并引用正确的单元格。
这是我一直在尝试的代码 运行:
Sub OppretteKnutepunkt()
Dim ws As Worksheet
Set ws = Worksheets("Ark1")
Dim KolonneForX As Integer
For I = 1 To 5
ws.Cells(1 + I, KolonneForX + 2).Formula = "='" & ws.Name & "'!CONCATENATE(""M"",TEXT(" & I & "+1,""0""))"
Next I
End Sub
我希望单元格 A2
具有以下公式:
='Ark1'!M2
我希望单元格 A3
具有以下公式:
='Ark1'!M3
等等。
有什么建议吗?
无需循环即可实现此目的
Dim I as Long
I = 7
With ws.Range("A2:A" & I)
.Formula = "='" & .Parent.Name & "'!M2"
End With
With
是一种在代码块上使用相同前缀的 shorthand 方式。 VBA
编译器为所有以 .
开头的内容加上 With
块
声明的前缀
上面的等价物是:
ws.Range("A2:A" & I).Formula = "='" & ws.Range("A2:A" & I).Parent.Name & "'!M2"
我正在尝试在单元格中编写一个 Forumla(从单元格 A2 到 AI,其中 I 是 For 循环中的数字)。 要写的公式必须对应单元格M2到MI,其中I是For循环中的数字。
我可以自己写 sheet-reference:
ws.Cells(1 + I, KolonneForX + 1).Formula = " ='" & ws.Name & "'"
它在我想要的单元格中给出了公式 ='Ark1'
(自己)。
以及要读取的正确单元格名称:
ws.Cells(1 + I, KolonneForX + 2).Formula = "=CONCATENATE(""M"",TEXT(" & I & "+1,""0""))"
它在我想要的单元格中给出了公式 MI
(通过它自己,I 的相应数字)。
但是当我尝试将它们两个放在一起时,我无法将其放入 运行 并引用正确的单元格。
这是我一直在尝试的代码 运行:
Sub OppretteKnutepunkt()
Dim ws As Worksheet
Set ws = Worksheets("Ark1")
Dim KolonneForX As Integer
For I = 1 To 5
ws.Cells(1 + I, KolonneForX + 2).Formula = "='" & ws.Name & "'!CONCATENATE(""M"",TEXT(" & I & "+1,""0""))"
Next I
End Sub
我希望单元格 A2
具有以下公式:
='Ark1'!M2
我希望单元格 A3
具有以下公式:
='Ark1'!M3
等等。
有什么建议吗?
无需循环即可实现此目的
Dim I as Long
I = 7
With ws.Range("A2:A" & I)
.Formula = "='" & .Parent.Name & "'!M2"
End With
With
是一种在代码块上使用相同前缀的 shorthand 方式。 VBA
编译器为所有以 .
开头的内容加上 With
块
上面的等价物是:
ws.Range("A2:A" & I).Formula = "='" & ws.Range("A2:A" & I).Parent.Name & "'!M2"