首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将单元格值定义为工作表

如何将单元格值定义为工作表
EN

Stack Overflow用户
提问于 2019-05-22 02:48:33
回答 1查看 36关注 0票数 0

我目前在代码中使用了一个固定的文件名,但是我想用一个特定单元格的值替换这个固定的文件名

我在不同的线程之间进行了广泛的研究,但没有找到任何幸运的东西--我对编码非常陌生,所以我发现了类似的问题,但我没有任何东西能够应用于我的编码或完全适应我的需求

我试过用

代码语言:javascript
复制
Set wbBook2 = Workbooks(wsSheet1_1.Range("O35").Value) 

和其他一些类似的步骤,但都没有用

代码语言:javascript
复制
Dim wbBook1 As Workbook
Dim wsSheet1_1 As Worksheet
Dim wsSheet1_2 As Worksheet

Dim wbBook2 As Workbook
Dim wsSheet2_1 As Worksheet

Set wbBook1 = Workbooks("Main File.xlsm")
Set wsSheet1_1 = wbBook1.Worksheets("Example1")
Set wsSheet1_2 = wbBook1.Worksheets("Example2")

Set wbBook2 = Workbooks("Look Up File.xlsm")
Set wsSheet2_1 = wbBook2.Worksheets("Example3")

上面的代码允许我使用'wbBook2.Activate‘切换到数据所在的工作簿,并采取必要的操作,但是我希望能够从使用"Look Up File.xlsm“更改为在wsSheet1_1上使用单元格O35。

目前,我只是确保我的查找文件的名称与代码中注明的名称相同,但这显然会导致失败,例如,如果意外地将其重命名,或者用户命名为此LookUp文件(省略空格)。

请注意,当使用此代码时,'wbBook2‘将已经打开&文件名可以更改。用户单独定义完整的文件路径和名称(包括.xlsm),然后在需要保持独立的单独宏中打开该文件路径和名称

EN

回答 1

Stack Overflow用户

发布于 2019-05-22 03:13:38

循环工作簿并查找匹配项会更安全

代码语言:javascript
复制
Private Function set_wb(ByVal toName As String) As Workbook

    ' Function set_wb(<String>), returns Workbook Object on match.
    ' - if no match found, return Nothing
    ' - invokation example: Set wb1 = set_wb("Book1")

    Dim wb As Workbook
    For each wb in Application.Workbooks
       If wb.Name = toName Then
           Set set_wb = wb ' wb found
           Exit Function
       End If
    Next wb

    Set set_wb = Nothing ' wb not found
End Function

在您的情况下,将通过以下方式调用:

代码语言:javascript
复制
Set wbBook2 = set_wb(wsSheet1_1.Range("O35")) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56244672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档