我真的是VBA新手,从网上搜索了解到目前所知道的知识,但我找不到解决我的问题的方法。
我有两个工作簿,一个是我公司当前所有项目的信息,另一个是只有活动项目的信息。活动项目工作簿是我们存储每个项目需要审核的所有文件的地方。每个项目都有自己的工作表。
当我在 "活动项目 "工作簿中创建新的工作表时,我想使用一个宏来填写 "所有项目工作簿 "中的相关项目信息。
我见过一些代码,可以将单元格和范围从一个工作簿复制到另一个工作簿,但它们的工作表名称是硬编码的。像这样
'将范围复制到选定的行中到剪贴板 Workbooks("All Project.xlsx").Worksheets("All Open").Range("B" & (ActiveCell.Row)).Copy
'PasteSpecial来粘贴数值、公式、格式等。 工作簿("Active Projects.xlsm").工作表(输入框值).Range("A2").PasteSpecial Paste:=xlPasteValues。
我想用一个输入框来要求复制数据的工作表名称,但经过几个小时的研究,我找不到用输入框的结果来做工作表名称。
谢谢你对我的VBA教育的进一步了解
顺便说一下--鉴于自由格式文本的性质,这很有可能有人放错表名。这是你需要在你的终端处理的东西,所以我建议你查。
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
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
以下代码将重命名活动表。
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