【问题标题】:Copy Data from One Excel Workbook to Another Using VBA使用 VBA 将数据从一个 Excel 工作簿复制到另一个工作簿
【发布时间】:2018-03-22 15:24:16
【问题描述】:

我正在尝试从一个 Excel 工作簿中复制特定数据并将其放入我创建的另一个工作簿中。我尝试了以下代码的许多变体,但都没有奏效,我一直在该行收到“运行时错误'1004':应用程序定义或对象定义错误'”。我一直遇到问题的行是“wb.Sheets("Sheet1").Range("A6").Value = ThisWorkbook.Sheets("Sheet1").Range(c.Offset(0, 8)).Value" - 我已经包含了完整的上下文代码。

Private Sub Go_Click()
With Worksheets(1).Range("A:A")
'Search from user input for the entry with that last name
Set c = .Find(LNE.Text, , xlValues, xlWhole)
  If Not c Is Nothing Then
       Dim wb As Workbook
       Set wb = Workbooks.Add("\Documents\Custom Office Templates\KFS_Template.xltm")

       StartDate = c.Offset(0, 3)
       EndDate = c.Offset(0, 4)
       If DateDiff("d", SDE.Text, StartDate) > -1 Then
            If DateDiff("d", EndDate, EDE.Text) > -1 Then
                    Set q = Range("A1")
                    wb.Sheets("Sheet1").Range("A6").Value = ThisWorkbook.Sheets("Sheet1").Range(c.Offset(0, 8)).Value
            End If
       End If
   End If
End With
End Sub

【问题讨论】:

  • 你应该使用数组来复制大数据,它更快更安全。另外告诉我你是否知道使用数组,如果不知道我可以为你提供一些代码
  • 我猜,因为你做了With Worksheets(1).Range("A:A") 没有注意到工作簿,它抛出了一个错误。试试With ThisWorkbook.Worksheets(1)... 看看能不能成功。
  • @lonut 我以前从未使用过数组,你能提供一个例子吗?几周以来,我一直在尝试自学 VBA。
  • @BruceWayne 错误不在该行,但还是谢谢你!我将尝试更改它以获得更简洁的代码。
  • LNE 是从哪里来的LNE.text

标签: vba excel


【解决方案1】:

尝试将 C 设置为范围,我认为问题在于您已经使用范围对象调用范围对象。

Private Sub Go_Click()
Dim c As Range
With Worksheets(1).Range("A:A")
'Search from user input for the entry with that last name
Set c = .Find(LNE.Text, , xlValues, xlWhole)
  If Not c Is Nothing Then
       Dim wb As Workbook
       Set wb = Workbooks.Add("\Documents\Custom Office Templates\KFS_Template.xltm")

       StartDate = c.Offset(0, 3)
       EndDate = c.Offset(0, 4)
       If DateDiff("d", SDE.Text, StartDate) > -1 Then
            If DateDiff("d", EndDate, EDE.Text) > -1 Then
                    Set q = Range("A1")
                    wb.Sheets("Sheet1").Range("A6").Value = c.Offset(0, 8).Value
            End If
       End If
   End If
End With

End Sub

【讨论】:

  • 我实际上已经尝试过了 - 在该行出现“下标超出范围”错误。
猜你喜欢
  • 2017-02-26
  • 2014-12-09
  • 2023-02-02
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多