VBA Excel外部工作簿评估

时间:2016-06-05 23:36:18

标签: excel vba

我对VBA这么生气,我觉得最好在这里问一张样品表\ snippit。

我需要从另一个WORKBOOK(奴隶)获取数据并对其进行评估 我将通过A中的最大值来看单元格1A,来自奴隶,以及...... “更新”)如果主表上存在数据,则将(主)X:Y替换为(从)X:Y b“add”)如果主设备上的A上的数据不存在,则将主数据从从设备添加到主设备的主设备。 c“删除”)如果主数据上的A数据存在但奴隶数量不存在,则将主数据上的整行移至主数据上的另一个工作表

到目前为止,我已经将数据从一个工作簿拉到另一个工作簿中了。

提前谢谢!

亚当

1 个答案:

答案 0 :(得分:0)

到目前为止,我已经想出了这个。现在我需要删除不需要的列,这很容易。我最有可能需要帮助的难点是评估更新后的工作表第1行中所有单元格的内容,以及现有工作表的第1行,并遵循我之前建立的条件。

Sub NeMasterData61_Button1_Click()

Dim wbMaster As Workbook
Dim wsMaster As String
Dim wbSlave As Workbook
Dim wsSlave As String
Dim vFile As Variant
Dim LastSlaveRow As Integer
Dim LastSlaveColumn As Integer

'Declare the Worksheet names
wsMaster = "Update"
wsSlave = "Sheet1"
'Set the wbMaster workbook
Set wbMaster = ActiveWorkbook
'Clear any previous updates - .ClearContents doesn't remove formatting
wbMaster.Sheets(wsMaster).UsedRange.Delete
'Open the target workbook
vFile = Application.GetOpenFilename("Excel-files,*.xlsx", 1, "Select One File To Open", , False)
'if the user didn't select a file, exit sub
If TypeName(vFile) = "Boolean" Then Exit Sub
'Set the wbSlave workbook
Set wbSlave = Workbooks.Open(vFile)
'Find Last Row and Column used
LastSlaveRow = wbSlave.Sheets("Sheet1").UsedRange.Rows.Count
LastSlaveColumn = wbSlave.Sheets("Sheet1").UsedRange.Columns.Count
'Copy the range of data from the slave sheet
wbSlave.Sheets(wsSlave).Range(Cells(7, 1), Cells(LastSlaveRow, LastSlaveColumn)).Copy
'Paste the data into the master sheet
wbMaster.Sheets(wsMaster).Range("A1").PasteSpecial
'Close wbSlave:
wbSlave.Close

End Sub