首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >VBA -可变工作表名用户定义

VBA -可变工作表名用户定义
EN

Stack Overflow用户
提问于 2016-09-30 01:18:02
回答 1查看 2.1K关注 0票数 2

想知道是否有人能帮忙,因为我已经尝试过几次在excel中创建这个功能。

汇总-最终用户将在工作表指定单元格内的特定单元格中放置适用的尾部,并按一个宏按钮复制去年的假日跟踪器,并创建一个新的工作表,随后将复制的工作表重命名。

Problem --当试图声明有问题的适用工作表变量工作表名称时,我会得到一个类型不匹配错误。

感激有人能帮忙吗?

下面的代码是在声明所涉工作表时遇到的绊脚石。

代码语言:javascript
运行
AI代码解释
复制
Sub test()

Dim ws as worksheet
Dim wsn as string

wsn = sheets("procedures").range("a1").value
Set ws = wsn

ws.activate

End sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-30 01:32:05

哇,这可真没劲。

将适用的后方放置在指定单元格中的特定单元格中。

这是什么意思?

您是否试图添加工作表并使用单元格A1中的值命名它?

这将完成提供A1包含可用作工作表名称的文本的工作。

代码语言:javascript
运行
AI代码解释
复制
Sub test()

    Dim ws As Worksheet

    Set ws = ThisWorkbook.Worksheets.Add

    ws.Name = Sheets("procedures").Range("a1")

    ws.Activate

End Sub

编辑:

此代码将复制range A1中命名的工作表,给它一个新名称并设置对它的引用。

代码语言:javascript
运行
AI代码解释
复制
Sub test()

    Dim ws As Worksheet
    Dim wsn As String

    With ThisWorkbook
        wsn = .Worksheets("procedures").Range("a1")
        'Code to check the name is valid & the worksheet exists.
        '....

        'Unfortunately you can't set a reference while copying,
        'so copy it to before the first sheet and then reference the first sheet.
        .Worksheets(wsn).Copy Before:=.Worksheets(1)
        Set ws = .Worksheets(1)
    End With

    ws.Name = "Some Other Sheet Name"

    ws.Activate

End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39787972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文