我尝试创建一个Excel VBA函数,该函数将从工作表1中复制单元格中的数据并将其粘贴到工作表2中。理想情况下,我会一直检查单元格的行数,无论“AF6, AF7...
”的值是多少。如果单元格中的值等于1,代码将复制行"C“(第一个实例中的第6行)中列出的所有列,并将它们粘贴到行2 (6-4)中。一些单元格包含数字,其他单元格包含字符串。我被卡住了--如果有人能解决我的问题,我将不胜感激。
Public Sub copy_cells(rows As Integer)
Dim C As Integer
For C = 6 To C = rows
If Worksheets("sheet1").Range("AF" & C).Value = 1 Then
Sheet2.Range("B" & C).Value = Sheet1.Range("B" & C - 4).Value
Sheet2.Range("E" & C).Value = Sheet1.Range("C" & C - 4).Value
Sheet2.Range("I" & C).Value = Sheet1.Range("D" & C - 4).Value
Sheet2.Range("J" & C).Value = Sheet1.Range("E" & C - 4).Value
Sheet2.Range("R" & C).Value = Sheet1.Range("F" & C - 4).Value
Sheet2.Range("V" & C).Value = Sheet1.Range("G" & C - 4).Value
Sheet2.Range("C" & C).Value = Sheet1.Range("H" & C - 4).Value
Sheet2.Range("F" & C).Value = Sheet1.Range("J" & C - 4).Value
Sheet2.Range("G" & C).Value = Sheet1.Range("K" & C - 4).Value
Sheet2.Range("D" & C).Value = Sheet1.Range("N" & C - 4).Value
End If
C = C + 1
Next C
End Sub
发布于 2013-05-11 00:02:29
您的代码非常接近于运行。两个更改:更正了FOR
循环的迭代部分;以及删除了循环底部不必要的显式C迭代。
Option Explicit
Public Sub copy_cells(rows As Integer)
Dim C As Integer
For C = 6 To rows
If Worksheets("Sheet1").Range("AF" & C).Value = 1 Then
Sheet2.Range("B" & C).Value = Sheet1.Range("B" & (C - 4)).Value
Sheet2.Range("E" & C).Value = Sheet1.Range("C" & (C - 4)).Value
Sheet2.Range("I" & C).Value = Sheet1.Range("D" & (C - 4)).Value
Sheet2.Range("J" & C).Value = Sheet1.Range("E" & (C - 4)).Value
Sheet2.Range("R" & C).Value = Sheet1.Range("F" & (C - 4)).Value
Sheet2.Range("V" & C).Value = Sheet1.Range("G" & (C - 4)).Value
Sheet2.Range("C" & C).Value = Sheet1.Range("H" & (C - 4)).Value
Sheet2.Range("F" & C).Value = Sheet1.Range("J" & (C - 4)).Value
Sheet2.Range("G" & C).Value = Sheet1.Range("K" & C - 4).Value
Sheet2.Range("D" & C).Value = Sheet1.Range("N" & C - 4).Value
End If
Next C
End Sub
发布于 2013-05-10 20:47:26
将For行更改为:
For C = 6 To rows
C = rows
的计算结果为false (0)
,并且您永远不会看到for循环(For 6 to 0
)中的代码
https://stackoverflow.com/questions/16490436
复制