excel - 如何在其他工作簿打开时自动更新 Vlookup 链接?
问题描述
我有两个工作簿,“Test1”和“Test2”,每个工作簿里面都有一张工作表。代码位于“Test1”工作簿的“ThisWorkbook”模块中。
我在"Test1"工作簿内的工作表"Mytest1"中有一个 Vlookup,它只是在工作表"Mytest2"内使用工作簿"Test2"进行 Vlookup 。两个工作簿都受密码保护,我遇到了一个问题,如果我在另一台计算机上打开了工作簿“Test2” ,当我打开“Test1”工作簿时,我会收到“Test2”的“输入密码”提示。我需要在不提示输入密码或打开第二个工作簿的情况下自动更新 Vlookups。
我在下面发布了工作簿和代码的屏幕截图,以及代码本身。请编辑或问我任何问题以澄清任何事情。
Private Sub Workbook_Open()
Workbooks.Open Filename:="\\FILEPATH\Databases\Test 2.xlsm", Password:="Swarf", Updatelinks:=3
ActiveWorkbook.Close SaveChanges:=True
End Sub
解决方案
我没有时间测试,但稍后会。我会尝试像这样将 VLOOKUP 重写为 VLOOKUP 的包装器
Function VLOOKUP_BYPASS(LookFor As Variant, Rng As Excel.Range, lngCol As Long) As Variant
Dim strWorkbook As String
strWorkbook = Rng.Parent.Parent.Name
If WORKBOOKOPEN(strWorkbook) Then
VLOOKUP_BYPASS = Application.WorksheetFunction.VLookup(LookFor, Rng, lngCol, False)
Else
VLOOKUP_BYPASS = "NA"
End If
End Function
Function WORKBOOKOPEN(strWorkbookName As String) As Boolean
WORKBOOKOPEN = False
Dim wb As Excel.Workbook
On Error GoTo eHandle
Set wb = Workbooks(strWorkbookName)
WORKBOOKOPEN = True
Exit Function
eHandle:
End Function
推荐阅读
- powershell - 使用 PowerShell 在 ADFS 实例中查找所有过期的声明提供程序证书
- python-3.x - 调用已定义的方法会导致 NameError
- r - “Fisher 测试错误:LDSTP 太小”是什么意思?
- spring - 为什么应用程序不公开 /health-check-path 端点?
- c# - 有没有办法使用 JQuery.Validate.Unobtrusive 使正则表达式不区分大小写?
- excel - 如何创建与附件图像中的轮廓图类似的轮廓图?(最好在 Excel 中,但对其他选项开放)
- c# - Autofac mock - 如何从依赖项中的特定方法设置/伪造数据?
- python - cupy map_coordinates gives out shape is mismatched error
- mysql - 如何在mysql中为表分配动态值
- c# - GetSnapshotAsync() 永远不会返回,我也没有收到任何错误。我该如何调试这个问题?