我有2個電子表格:一個按鈕後,合併兩個電子表格點擊
main.xlsxm
drs.xlsx
我試圖合併這兩個電子表格 - 此事件將在main.xlsx電子表格上點擊按鈕後啓動(因此VBA代碼將駐留在main .xlsx)格式。
但我在編寫代碼時遇到了困難,我最初嘗試使用以下Excel公式的變體,但速度非常慢。
= IFERROR(INDEX([1.xlsx] Sheet 1中$ A:$ A,SMALL(IF([1.xlsx] Sheet 1中$ B:$ B = $ A2,ROW([1.xlsx ]工作表Sheet1 $ B:$ B),99^99),COLUMN(A $ 1))), 「」)
我試圖完成在VBA如下:
如果列值E in drs.xlsx等於列值A in main.xlsx: 然後在匹配行main.xlsx 複印列值B在drs.xls到列值J在main.xlsx
如果第二個發現匹配(只要它是不一樣的第一個匹配): 凡列值E在drs.xlsx等於列值A在main.xlsx 複印列值B在drs.xls到列值K在main.xlsx
如果三分之一發現匹配(只要它是不一樣的,第一和第二匹配) : 凡列值E在drs.xlsx等於列值A在main.xlsx 複製列值Bdrs.xls到列值L在main.xlsx
如果它發生了第四次則忽略......
我怎麼會說出這樣的VBA代碼?
這是到目前爲止我的代碼(其準備就緒電子表格):
Sub DRS_Update()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\drs.xlsx")
With wb.Worksheets("Sheet1")
.AutoFilterMode = False
With .Range("A1:D1")
.AutoFilter Field:=1, Criteria1:="TW", Operator:=xlOr, Criteria2:="W"
.AutoFilter Field:=3, Criteria1:="Windows 7", Operator:=xlOr, Criteria2:="Windows XP"
.AutoFilter Field:=4, Criteria1:="Workstation-Windows"
End With
End With
End Sub