Excel VBA问题-复制索引范围的语法

业余编码器

您好-我正在尝试将针对特定条件的多张工作表中的数据编译为一张工作表。我希望它逐步从5到x遍历工作表并执行以下操作-查找源工作表范围E13:E37中的值为空白的行,并将值从(RowSource,2)复制并粘贴到(RowSource ,5)到(RowTarget,2)到(RowTarget,5)中的目标表-将源工作表单元格“ C2”中的值复制并粘贴到每个行目标中,我在代码中遇到两个问题:1.我得到了该范围的复制粘贴中存在错误。我尝试了很多不同的语法,但并没有正确执行。2.并不是真正地完成所有工作表,有人可以帮我吗?谢谢

Sub Get_Activities()
    Dim c As Range 'count for blank
    Dim j As Integer 'target sheet row
    Dim w As Integer ' sheet number
    Dim Source As Worksheet
    Dim Target As Worksheet
    Dim SheetCount As Integer

    Set Target = ActiveWorkbook.Worksheets("Report") 'where the data is going

    j = 4     ' Start copying to row 4 in target sheet

    w = 5     'start at 5th Worksheet in file which should be the first Plant

    If w <= ActiveWorkbook.Sheets.Count Then

    Set Source = ActiveWorkbook.Worksheets(w) 'where the data is coming from

    For Each c In Source.Range("E13:E37")   ' Look at all the tasks
        If c = "" Then
         Source.Cells(2, 3).Copy Target.Cells(j, 1)
         Source.Range(Cells(c.Row, 2), Cells(c.Row, 5)).Copy
         Target.Range(Cells(j, 2)).PasteSpecial Paste:=xlPasteValues ' Getting an invalid operator error for j.Row

        j = j + 1
        End If

    Next c

  w = w + 1

 End If

End Sub
诺西亚

问题1是由于语法不正确或至少存在问题引起的:您应在两个“单元”的前面添加“源”标识符

Source.Range(Cells(c.Row, 2), Cells(c.Row, 5)).Copy

您还应该摆脱粘贴代码的“范围”,因为它是不必要的,并且也可能引起问题。这两个更改均在下面的代码块中完成。

 Target.Range(Cells(j, 2)).PasteSpecial Paste:=xlPasteValues

在此处可以找到比我提供的有关使用范围和单元格时对其他标识符的需求更好的描述-仅当我激活工作表时,VBA复制和粘贴才有效

问题2是,您永远不会循环浏览工作表,代码会在if之后结束,在这种情况下,我选择使用“ Do While”循环,只要您循环就可以选择任意循环形式!

Do While w <= ActiveWorkbook.Sheets.Count

Set Source = ActiveWorkbook.Worksheets(w) 'where the data is coming from

For Each c In Source.Range("E13:E37")   ' Look at all the tasks
    If c = "" Then
     Source.Cells(2, 3).Copy Target.Cells(j, 1)
     Source.Range(Source.Cells(c.Row, 2), Source.Cells(c.Row, 5)).Copy
     Target.Cells(j, 2).PasteSpecial Paste:=xlPasteValues ' Getting an invalid operator error for j.Row

    j = j + 1
    End If

Next c

w = w + 1

Loop

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VBA Excel SelectSingleNode语法

来自分类Dev

Excel VBA:粘贴问题

来自分类Dev

Excel 2010 VBA帮助复制列的范围

来自分类Dev

VBA循环中动态数据范围的Excel 2013适当语法

来自分类Dev

如何只复制范围内的Excel VBA中的值?

来自分类Dev

Excel VBA:范围xldown始终复制至少3行

来自分类Dev

Excel 2007范围和单元格语法问题

来自分类Dev

VBA EXCEL范围语法

来自分类Dev

Excel VBA复制并粘贴整个范围与条件?

来自分类Dev

Excel VBA将范围值复制到数组,

来自分类Dev

VBA / Excel If ... Then ... ElseIf ... Else语句复制向下列问题

来自分类Dev

使用VBA将Excel范围复制到Word文件时遇到问题

来自分类Dev

使用Excel VBA复制列中的范围

来自分类Dev

使用VBA将Excel范围复制到Word文件时遇到问题

来自分类Dev

在VBA Excel中复制粘贴范围

来自分类Dev

VBA Excel SelectSingleNode语法

来自分类Dev

Excel VBA .find问题

来自分类Dev

如何只复制范围内的Excel VBA中的值?

来自分类Dev

VBA代码将Excel范围复制并粘贴到Outlook中

来自分类Dev

Excel VBA列表问题

来自分类Dev

VBA EXCEL范围语法

来自分类Dev

Excel 2003:VBA语法在Excel 2010中引起问题-替代方法?

来自分类Dev

Excel VBA-将范围复制到非空行

来自分类Dev

使用VBA宏在excel中复制变量范围

来自分类Dev

Excel VBA 问题

来自分类Dev

Excel VBA 动态范围/循环问题

来自分类Dev

Excel VBA:复制/粘贴范围

来自分类Dev

Excel VBA:如何从同一工作表复制多个范围

来自分类Dev

Excel vba - 如何在范围变化时复制/粘贴