0
我正在尋找一個宏來複制兩個OPEN工作簿之間匹配列標題的數據。我有以下代碼在同一工作簿中的工作表之間複製數據。但是我需要在兩個OPEN工作簿之間進行復制。Excel宏複製兩個OPEN工作簿之間匹配列標題的數據
- 首先打開目標工作簿(有它的宏按鈕複製數據)
- 二開源工作簿(物理查看和驗證數據)
- 第三,去目標工作簿,然後單擊按鈕複製。
任何人都可以請幫助我。
Sub CopyMatchingHeaders()
Dim wbSource As Workbook
Dim SFileName As Variant
SFileName = Application.GetOpenFilename("Excel Files, *.xlsx, *.xls*,", MultiSelect:=False)
If TypeName(SFileName) = "String" Then
Set wbSource = Workbooks.Open(SFileName)
Else
MsgBox "No file selected."
Exit Sub
End If
Dim header As Range, headers As Range
Set headers = ActiveWorkbook.Worksheets("Sheet1").Range("A1:AE1")
For Each header In headers
If GetHeaderColumn(header.Value) > 0 Then
Range(header.Offset(1, 0), header.End(xlDown)).Copy Destination:=ActiveWorkbook.Worksheets("Sheet2").Cells(2, GetHeaderColumn(header.Value))
End If
Next
End Sub
Function GetHeaderColumn(header As String) As Integer
Dim headers As Range
Set headers = ActiveWorkbook.Worksheets("Sheet2").Range("A1:AE1")
GetHeaderColumn = IIf(IsNumeric(Application.Match(header, headers, 0)), Application.Match(header, headers, 0), 0)
End Function
您是否嘗試過做任何您想做的事情?如果是這樣,請更新問題以顯示您嘗試過的內容,並告訴我們哪個位未按預期工作。 – YowE3K
我試過上面更新的代碼,它工作正常。但是這段代碼一次打開源文件並複製數據。我需要單獨的宏按鈕先打開文件,然後複製數據。我有代碼來打開源文件,但從那裏我需要代碼來複制數據。謝謝 – Siraj