在工作簿和vlookup之间进行ms-Excel工作表传输

时间:2018-08-16 17:04:02

标签: excel vba excel-vba

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

我有4个工作簿,每个工作簿都包含两个确切的工作表(其余工作表对于每个工作簿都是唯一的)。我将这两个工作表存储在单独的工作簿(第5个工作簿)中。在这两个工作表中,其中一个是由许多表组成的数据表,我对其进行更新,另一个是名为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

问题如下:

在转移了新的数据工作表后,V工作表不再与Vlookup函数配合使用以指向相对信息。所以我想,如果我同时传输数据表和V工作表,那该怎么办?

在复制数据表时,是否可以使用Vlookup? (名称完全相同,我不明白为什么它似乎无法指向表的单元格)。它只是一片空白,无法指向任何内容。

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

可能要注意的是,主要的excel工作簿(第4个)正在使用24/7,因此我不能采用其他方法(从Data工作簿更新到主要工作簿)。我必须“拉”更新的工作表,而不是“推”。

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

0 个答案:

没有答案