首页 > 解决方案 > 工作簿和 vlookup 之间的 ms-Excel 工作表传输

问题描述

我有一个简单的问题(至少似乎是),我似乎无法找到一个好的解决方案:

我有 4 个工作簿,它们都包含两个确切的工作表(其余工作表对于每个工作簿都是唯一的)。我将这两个工作表存储在一个单独的工作簿中(所以第 5 个工作簿)。在这 2 个工作表中,其中 1 个是由许多表组成的数据表,我对其进行更新,另一个是名为 V 的工作表,它仅使用一些 vlookup 函数从该数据表中调出相关数据.

我正在尝试找到一种能够将此数据表传递给每个单独的工作簿的方法,而不是为每个工作簿(全部 4 个)单独编辑数据表。

我能够提出以下宏,它检查工作表是否已经存在,如果存在则将其删除。然后它打开 excel 文件的位置,将此工作表复制到工作簿,因此我拥有此数据工作表的最新版本。

Sub UpdateT()

Sheets("data").Visible = True

Dim wb As Workbook
Dim aw As Workbook
''Open 2nd Workbook
Set aw = Application.ActiveWorkbook

'Check if data worksheet exists, and if it does delete it
If Not GetWorksheet("data") Is Nothing Then
    Application.DisplayAlerts = False
    Worksheets("data").Delete
    Application.DisplayAlerts = True
End If

'Check if T worksheet exists, and if it does, delete it
If Not GetWorksheet("T") Is Nothing Then
    Application.DisplayAlerts = False
    Worksheets("T").Delete
    Application.DisplayAlerts = True
End If

Set wb = Workbooks.Open(Filename:="C:\Users\yilmadu001\Desktop\Update.xlsx")

'Copy To Different Workbook
wb.Sheets("data").Copy _
     After:=aw.Sheets("Data1")
wb.Sheets("5120 TI").Copy _
     After:=aw.Sheets("MENU5120")

'Close 2nd Workbook
aw.Save
wb.Close

'Hide the data worksheet
aw.Sheets("data").Visible = False

End Sub

'Function to check if worksheets exist
Function GetWorksheet(shtName As String) As Worksheet
    On Error Resume Next
    Set GetWorksheet = Worksheets(shtName)
End Function

问题如下:

传输新的 Data 工作表时,V 工作表不再使用 Vlookup 函数来指向相关信息。所以我想,好吧,如果我同时传输数据和 V 工作表怎么办,但这也行不通。

有没有办法在复制数据表时使用 Vlookup?(名称完全一样我不明白为什么它似乎无法指向表格的单元格)。它只是看起来很空白,无法指向任何东西。

注意:我没有改变数据表的格式,基本上只是值,所以格式是完全相同的。

重要的是要注意主要的 excel 工作簿(4 个)24/7 都在使用,因此我不能采取其他方式(从数据工作簿更新到主工作簿)。我必须“拉”更新的工作表而不是“推”。

如果有人有任何建议,我将不胜感激。谢谢你。

标签: vbaexcel

解决方案


推荐阅读