Excel 循环查找值并将特定的三个单元格复制到另一个工作表
我是VBA新手,对我的代码有一个不起作用的问题。 首先,长话短说。。。 我已将单元格A2中的数据粘贴到FUndetermind行。第1行是未更改的标题。粘贴数据后,宏将选择单元格G2和H2,并将它们复制到粘贴数据的末尾。单元格G2和H2中有IF公式……如果条件为false,则将单元格留空 这里是我的宏代码发挥作用的地方 下面的代码在G列中循环查找非空白值,并将单元格G、C和E复制到另一个工作表中,分别粘贴到单元格D、B和C中。 这段代码适用于第一行数据,但似乎没有循环到G列的其余部分。如果能让这段代码正常工作,我们将不胜感激 由于这是我第一次在任何帮助网站上发表文章,请原谅我违反了这篇文章的任何规则,请让我知道我做错了什么,这样我就不会再这样做了。谢谢Excel 循环查找值并将特定的三个单元格复制到另一个工作表,excel,vba,loops,copying,Excel,Vba,Loops,Copying,我是VBA新手,对我的代码有一个不起作用的问题。 首先,长话短说。。。 我已将单元格A2中的数据粘贴到FUndetermind行。第1行是未更改的标题。粘贴数据后,宏将选择单元格G2和H2,并将它们复制到粘贴数据的末尾。单元格G2和H2中有IF公式……如果条件为false,则将单元格留空 这里是我的宏代码发挥作用的地方 下面的代码在G列中循环查找非空白值,并将单元格G、C和E复制到另一个工作表中,分别粘贴到单元格D、B和C中。 这段代码适用于第一行数据,但似乎没有循环到G列的其余部分。如果能让这
Sub XFerData()
Dim RowGCnt As Long, CShtRow As Long
Dim CellG As Range
RowGCnt = 2
CShtRow = 4
Set CellG = Range("G2:G" & RowGCnt)
For Each Cell In CellG.Cells
If Range("G" & RowGCnt).Value <> "" Then
Worksheets("Plate Kit-Frame").Range("G" & RowGCnt).Copy
Worksheets("Cutting Sheet").Range("D" & CShtRow).PasteSpecial xlPasteValues
Worksheets("Plate Kit-Frame").Range("C" & RowGCnt).Copy
Worksheets("Cutting Sheet").Range("B" & CShtRow).PasteSpecial xlPasteValues
Worksheets("Plate Kit-Frame").Range("E" & RowGCnt).Copy
Worksheets("Cutting Sheet").Range("C" & CShtRow).PasteSpecial xlPasteValues
CShtRow = CShtRow + 1
RowGCnt = RowGCnt + 1
End If
Next
End Sub
你的蜂窝范围永远只会是一排。布景结束后。。。线路输入:MsgBox CellG.Address.你太棒了!我已经为此奋斗了好几个星期了。非常感谢你!
Sub XFerData()
Dim RowGCnt As Long, CShtRow As Long
Dim LastRow As Long
Dim CellG As Range
CShtRow = 4
LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
For RowGCnt = 2 to LastRow
If Range("G" & RowGCnt).Value <> "" Then
Worksheets("Plate Kit-Frame").Range("G" & RowGCnt).Copy
Worksheets("Cutting Sheet").Range("D" & CShtRow).PasteSpecial xlPasteValues
Worksheets("Plate Kit-Frame").Range("C" & RowGCnt).Copy
Worksheets("Cutting Sheet").Range("B" & CShtRow).PasteSpecial xlPasteValues
Worksheets("Plate Kit-Frame").Range("E" & RowGCnt).Copy
Worksheets("Cutting Sheet").Range("C" & CShtRow).PasteSpecial xlPasteValues
CShtRow = CShtRow + 1
End If
Next RowGCnt
End Sub