EXCEL如何写VBA关于行与行比较

2025-02-25 22:37:33
推荐回答(2个)
回答1:

简单的循环
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:

多重选区造成复制失败,需要用union将选区合并为一个。请修改那个扩展选区到整行()如下:

Sub 扩展选区到整行()
Union(Selection.EntireRow, Selection).Select
End Sub