【问题标题】:Using VBA to copy a spreadsheet from a secondary workbook into the primary one使用 VBA 将电子表格从辅助工作簿复制到主工作簿
【发布时间】:2016-06-14 04:35:18
【问题描述】:

我需要获取一个电子表格并将其与另一个工作簿中的电子表格进行比较。我知道我可以使用 VBA 来做到这一点,但我需要从另一个工作簿复制电子表格,以便两个电子表格都位于同一个工作簿中并且可以访问以进行比较。如何使用 VBA 将电子表格从一个工作簿复制到另一个工作簿?

【问题讨论】:

  • 您的问题过于笼统,不清楚。请尝试提供更多详细信息
  • 请发布您尝试过的方法,以及不起作用的结果...并寻求帮助。
  • 谢谢,我重写了这个问题,希望能更清楚。
  • 只要在谷歌上搜索问题的标题就会找到很多例子

标签: vba excel excel-2013


【解决方案1】:

您无需复制工作表即可进行比较。只需打开两个 WorkBooks 并设置对 WorkSheets 的引用。

Sub CompareWorkBooks()
    Dim wbPending As Workbook
    Dim wsPending As Worksheet

    Set wbPending = Workbooks("Items Pending")
    Set wsPending = wsPending.Worksheet("Items")

    Dim wbRecieved As Workbook
    Dim wsRecieved As Worksheet

    Set wbRecieved = Workbooks("Items Recieved")
    Set wsRecieved = Worksheet("Items")

End Sub

如果您提供工作簿和工作表的名称并提供列信息,我们可以在更短的时间内为您提供更好的答案。也不要害怕发布您的代码。

如果您希望用户选择目标工作簿和工作表:

  • 创建用户表单
  • 在代码模块顶部声明 targetWorkbook 和 tartgetWorksheet
  • 添加命令按钮和组合框
  • 单击按钮时,将打开文件对话框
  • 现在为打开的文件设置了引用
  • 所有工作表的名称都添加到组合中
  • 更改组合框值会将引用设置为 tartgetWorksheet

Option Explicit
Public targetWorkbook As Workbook
Public tartgetWorksheet As Worksheet

Private Sub CommandButton1_Click()
    Dim targetWorkbook As Workbook
    Dim ws As Worksheet
    Set targetWorkbook = getTargetWorkbook

    If targetWorkbook = Nothing Then
        MsgBox "Sowmthing went wrong", vbCritical, "Try Again"
    Else
        For Each ws In targetWorkbook.Worksheets
            ComboBox1.AddItem ws.Name
        Next
    End If

End Function

Function getTargetWorkbook() As Workbook
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = False
        .Show
        On Error Resume Next
        Set getTargetWorkbook = Application.Workbooks.Open(.SelectedItems(1))
        On Error GoTo 0
    End With
End Function

Private Sub ComboBox1_Change()
    Set tartgetWorksheet = targetWorkbook.Worksheets(ComboBox1.Value)
End Sub

【讨论】:

  • 谢谢!是否可以在程序每次运行时提示用户选择两个工作簿?
  • 是否要打开文件浏览器对话框让他们选择工作簿?工作表是否始终具有相同的名称,还是用户也需要选择该名称?
  • 工作表将有不同的名称,并且首选文件浏览器对话框。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 1970-01-01
  • 2023-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多