如何在VBA代码中使用输入框的结果作为工作表名称?

问题描述 投票:0回答:1

我真的是VBA新手,从网上搜索了解到目前所知道的知识,但我找不到解决我的问题的方法。

我有两个工作簿,一个是我公司当前所有项目的信息,另一个是只有活动项目的信息。活动项目工作簿是我们存储每个项目需要审核的所有文件的地方。每个项目都有自己的工作表。

当我在 "活动项目 "工作簿中创建新的工作表时,我想使用一个宏来填写 "所有项目工作簿 "中的相关项目信息。

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

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

'PasteSpecial来粘贴数值、公式、格式等。 工作簿("Active Projects.xlsm").工作表(输入框值).Range("A2").PasteSpecial Paste:=xlPasteValues。

我想用一个输入框来要求复制数据的工作表名称,但经过几个小时的研究,我找不到用输入框的结果来做工作表名称。

谢谢你对我的VBA教育的进一步了解

excel vba inputbox
1个回答
0
投票

顺便说一下--鉴于自由格式文本的性质,这很有可能有人放错表名。这是你需要在你的终端处理的东西,所以我建议你查。

  1. 如何检查一个表的名字是否存在于书上?
  2. 如何循环一个 InputBox 直到给出一个可接受的输入

Dim Sheet_Name As String

'Get Input
Sheet_Name = Application.InputBox("Enter Sheet Name", Type:=2)

'Use Input
MsgBox ThisWorkbook.Sheets(Sheet_Name).Name

0
投票
Dim InputBoxValue As String
InputBoxValue = InputBox("Enter sheet name")

'PasteSpecial to paste values, formulas, formats, etc. 
Workbooks("Active Projects.xlsm").Worksheets(InputBoxValue).Range("A2").PasteSpecial Paste:=xlPasteValues

0
投票

以下代码将重命名活动表。

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
© www.soinside.com 2019 - 2024. All rights reserved.