首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将单元格数据从一个工作表复制到另一个工作表

将单元格数据从一个工作表复制到另一个工作表
EN

Stack Overflow用户
提问于 2013-05-11 04:36:32
回答 2查看 2.9K关注 0票数 0

我尝试创建一个Excel VBA函数,该函数将从工作表1中复制单元格中的数据并将其粘贴到工作表2中。理想情况下,我会一直检查单元格的行数,无论“AF6, AF7...”的值是多少。如果单元格中的值等于1,代码将复制行"C“(第一个实例中的第6行)中列出的所有列,并将它们粘贴到行2 (6-4)中。一些单元格包含数字,其他单元格包含字符串。我被卡住了--如果有人能解决我的问题,我将不胜感激。

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-11 08:02:29

您的代码非常接近于运行。两个更改:更正了FOR循环的迭代部分;以及删除了循环底部不必要的显式C迭代。

代码语言:javascript
复制
  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
票数 1
EN

Stack Overflow用户

发布于 2013-05-11 04:47:26

将For行更改为:

For C = 6 To rows

C = rows的计算结果为false (0),并且您永远不会看到for循环(For 6 to 0)中的代码

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16490436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档