为什么使用Rows.Count只能找到前12行数据?

时间:2018-04-30 10:09:29

标签: excel-vba count range vba excel

我正在尝试在源数据表中找到包含数据的行,然后使用VBA将一些列复制到目标工作表中的各个位置。我已成功完成了12k行的列表,但是当我做一些测试数据时,它只复制了19行数据中的前12行....

Sub Header_Raw()
Dim dataBook As Workbook
Dim Header_Raw As Worksheet, Header As Worksheet
Dim dataSource As Range, dataDest As Range
Dim sourceDataRowCount As Integer, index As Integer

Set dataBook = Application.ThisWorkbook
Set sheetSource = dataBook.Sheets("Header_Raw")
Set sheetDest = dataBook.Sheets("Header")

Set dataSource = sheetSource.Range("B4", _
                sheetSource.Range("J90000").End(xlUp))
sourceDataRowCount = dataSource.Rows.Count

Set dataDest = sheetDest.Range("B13", "B" & _
                            sourceDataRowCount)

For index = 1 To sourceDataRowCount
  dataDest(index, 1).Value = dataSource(index, 1).Value
  dataDest(index, 2).Value = dataSource(index, 2).Value

Next index

End Sub

如果你能告诉我我做错了什么,那就太好了 谢谢 朱莉

1 个答案:

答案 0 :(得分:0)

通过简单的调试让您的生活更轻松。运行以下命令:

Sub HeaderRaw()

    'Dim all the variables here

    Set dataBook = Application.ThisWorkbook
    Set SheetSource = dataBook.Sheets("Header_Raw")
    Set sheetDest = dataBook.Sheets("Header")

    Set dataSource = SheetSource.Range("B4", SheetSource.Range("J90000").End(xlUp))
    SheetSource.Activate
    dataSource.Select

End Sub

现在,只要选择了dataSource,您就会看到它是什么。可能这不是你所期望的。