【问题标题】:Copying cell data from one worksheet to another将单元格数据从一个工作表复制到另一个工作表
【发布时间】:2013-05-11 08:02:29
【问题描述】:

我试图创建一个 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

【问题讨论】:

  • 不确定您的代码出了什么问题,但我确实看到 rows 没有赋值,并且第一个赋值语句中的 s 未定义。
  • rows 作为整数从另一个函数中引入。 s 来自于实验,抱歉。

标签: excel copy-paste vba


【解决方案1】:

将您的 For 行更改为:

For C = 6 To rows

C = rows 的计算结果为 false (0),并且您永远无法到达 for 循环内的代码 (For 6 to 0)

【讨论】:

    【解决方案2】:

    您的代码非常接近运行。两个变化:修正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
    

    【讨论】:

      猜你喜欢
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多