首页 > 解决方案 > 如何在 VBA 代码中使用输入框的结果作为工作表名称

问题描述

我真的是 VBA 的新手,并且从互联网搜索中学到了迄今为​​止我所知道的东西,但我找不到解决我的问题的方法。

我有两本工作簿,一本包含有关我公司所有当前项目的信息,另一本仅包含活动项目的信息。活动项目工作簿是我们存储每个项目需要审查的所有文档的地方。每个项目都有自己的工作表。

当我在 Active Projects 工作簿中创建新工作表时,我想使用宏来填写 All Projects 工作簿中的相关项目信息。

我见过将单元格和范围从一个工作簿复制到另一个工作簿的代码,但它们的工作表名称是硬编码的。像这样:

'将选定行中的范围复制到剪贴板 Workbooks("All Project.xlsx").Worksheets("All Open").Range("B" & (ActiveCell.Row)).Copy

'PasteSpecial 粘贴值、公式、格式等 Workbooks("Active Projects.xlsm").Worksheets( InputBoxValue ).Range("A2").PasteSpecial Paste:=xlPasteValues

我想使用输入框来询问将粘贴复制数据的工作表名称,但经过数小时的研究,我无法找到使用输入框的结果作为工作表名称。

感谢您继续我的 VBA 教育

标签: excelvbainputbox

解决方案


下面的代码将重命名活动表:

Sub Rename_Worksheet()

Dim Str As String
Dim Ws As Worksheet
Set Ws = ActiveSheet

Str = InputBox("Please provide new name for Worksheet : " & Ws.Name)

Ws.Name = Str

MsgBox "Worksheet renamed successfully to " & Str

End Sub

推荐阅读