Vba 如何做一个;“边做边做”;有条件吗?
我尝试做一个循环,如果条件为真,单元格n索引(列E)与单元格n+1索引相同,则将列C值复制到列G中 不幸的是,最后一个C列值没有复制到G列,所以我只是用一个字符串来解析它:Vba 如何做一个;“边做边做”;有条件吗?,vba,excel,Vba,Excel,我尝试做一个循环,如果条件为真,单元格n索引(列E)与单元格n+1索引相同,则将列C值复制到列G中 不幸的是,最后一个C列值没有复制到G列,所以我只是用一个字符串来解析它: Sheets("Report KIT").Range("G" & n) = Sheets("Report KIT").Range("C" & n).Value 之后做一会儿。有人能帮忙吗?谢谢 Sub Macroarea1() Dim ws As Worksheet Dim LastRow As L
Sheets("Report KIT").Range("G" & n) = Sheets("Report KIT").Range("C" & n).Value
之后做一会儿。有人能帮忙吗?谢谢
Sub Macroarea1()
Dim ws As Worksheet
Dim LastRow As Long
Dim LastRow1 As Long, LastRow3 As Long
Dim i, n As Integer, x As Integer, y As Integer
Set ws = ActiveWorkbook.Sheets("Report KIT")
If Sheets("Migrazioni").Range("F" & 7) = "si" Then
n = Sheets("Migrazioni").Range("N" & 7).Value
Do While _
Sheets("Report KIT").Range("E" & n) = Sheets("Report KIT").Range("E" & n + 1)
Sheets("Report KIT").Range("G" & n) = Sheets("Report KIT").Range("C" & n).Value
n = n + 1
Loop
Sheets("Report KIT").Range("G" & n) = Sheets("Report KIT").Range("C" & n).Value
End If
端接头
我稍微清理了一下您的循环,首先添加了一个检查
E
列值的方法,并修改了循环以检查每一行是否符合初始E
列值以测试它。我用你的样本数据测试了它,它产生了你想要的结果。有时,这些条件循环可能很难理解
Sub Macroarea1()
Dim wsR As Worksheet, wsN As Worksheet
Dim LastRow As Long
Dim LastRow1 As Long, LastRow3 As Long
Dim i, n As Integer, x As Integer, y As Integer
Set wsR = ActiveWorkbook.Sheets("Report KIT")
Set wsN = ActiveWorkbook.Sheets("Migrazioni")
If wsN.Range("F7") = "si" Then
n = wsN.Range("N7").Value
i = wsR.Range("E" & n).Value
Do Until wsR.Range("E" & n) <> i
wsR.Range("G" & n).Value = wsR.Range("C" & n).Value
n = n + 1
Loop
End If
End Sub
次大区域1()
将wsR设置为工作表,将wsN设置为工作表
最后一排一样长
调暗最后一行1的长度,最后一行3的长度
尺寸i,n为整数,x为整数,y为整数
设置wsR=ActiveWorkbook.Sheets(“报告工具包”)
设置wsN=ActiveWorkbook.Sheets(“Migrazioni”)
如果wsN.Range(“F7”)=“si”,则
n=传感器网络范围(“N7”)值
i=wsR.范围(“E”&n).值
直到wsR.Range(“E”&n)i
wsR.Range(“G”&n).Value=wsR.Range(“C”&n).Value
n=n+1
环
如果结束
端接头
Do while在编写代码之前测试逻辑。您的意思是,如果当前单元格不等于下一个单元格,则不执行任何操作。您需要在Do While
中使用或语句来检查上面的单元格是否相等。