EXCEL中如何编写VBA判断循环多行单元格数值及赋值.

例如:

判断 A列1行=空值时, F列1行赋值为"=A2&B2&C2"
If [a1] = 0 Then
[F1] = "=A2&B2&C2"
EndIf

由于我的列数是很多 A1 ~ A1000 甚至以上,我需要一个循环语句
判断 A列1,2,3....行.
If [axxxx] = 0 Then
[Fxxxx] = "=Axxxx&Bxxxx&Cxxxx"
EndIf

如判断A1,条件为真, 则立即给F1赋值.A2真,F2赋值..... 不断循环向下行.
直至设定循环次数结束为止.
是用EXCEL的VBA实现,谢谢各位!
如判断A1,条件为真, 则立即给F1赋值.A2真,F2赋值,但F2赋值的
同时A2&B2&C2的数字也是变化,就好像单元格下拉数字自动变化一样.
不断循环向下行.
即:
If [axxxx] = "" Then
[Fxxxx] = "=Axxxx&Bxxxx&Cxxxx"
EndIf
if [a2]= "" then
[F2]= "=A2&B2&C2"
if [a3]= "" then
[F3]= "=A3&B3&C3"
注意:判断及赋值数都需要变化.
直至设定循环次数结束为止.
是用EXCEL的VBA实现,谢谢各位!

Sub abc()
Dim r As Long
For r = 1 To 1000
If Range("A" & r) = 0 Then Range("F" & r).FormulaR1C1 = "RC1&RC2&RC3"
Next r
End Sub

请修改循环大小为所需的数值。

另外,[A1]=0时,[F1]=A2&B2&C2,还是=A1&B1&C1 ?

上面的代码是 =A1&B1&C1

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-08
简单的循环
Sub test()
Dim i As Long
Dim endRow As Long

endRow = Range("A" & Rows.Count).End(xlUp).Row '获取末行
if endRow < 1 then exit sub

For i = 1 To endRow-1
if trim(range("A" & i).value) = "" then

Range("F" & i).Formula = "=A" & i+1 & "&B" & i+1 & "&C" & i+1
end if

Next i
End Sub

或者
Sub test()
Dim i As Long
Dim endRow As Long

endRow = Range("A" & Rows.Count).End(xlUp).Row '获取末行
if endRow < 0 then exit sub

For i = 1 To endRow
if trim(range("A" & i).value) = "" then
Range("F" & i).Formula = "=A" & i & "&B" & i & "&C" & i
end if
Next i
End Sub
二段代码,前面是f1=(=a2&b2&c2),后一段是f1=(=a1&b1&c1)本回答被提问者和网友采纳
第2个回答  2013-04-26
你的判断是为0而不是为空,如果是判断为空,=""
循环如下
sub test ()
i=range("A65536").end(xlup).row‘判断A列最后一行的行号
for x=1 to i’建立循环从第一行到最后一行
if cells(x,1)=0 then cells(x,6)=cells(x,1) & cells(x,2) & cells(x,3)'判断A值为0时,如果是判断为空,=0改变=""
next x
end sub本回答被网友采纳
相似回答