要执行以下操作:
- 复制特定的“模板”工作表,次数与主数据库中选定的单元格数量相同
- 根据选定的单元格范围创建工作表(带有名称)
- 根据新创建的工作表的名称 - 更新其中一个单元格
- 使用
VLOOKUP
功能根据步骤 3 中更新的单元格来提取其他值。
我有以下 VBA 代码:
Sub CreateWorkSheetByRange()
'variable declaration
Dim WorkRng As Range
Dim Ws As Worksheet
Dim arr As Variant
Dim tws As Worksheet
'Start of Program
On Error Resume Next
'Specify the title of the dialog that requests for range
xTitleId = "Select Range"
' Assign template worksheet to a variable
Set tws = Worksheets("template")
' Assign the application.selection function to the variable WorkRng
Set WorkRng = Application.Selection
' Accept input from the user
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
' Create an array of the input values
arr = WorkRng.Value
' The following line is optional
' Application.ScreenUpdating = False
' Create the Worksheet names based on range selected
For i = 1 To UBound(arr, 1)
For j = 1 To UBound(arr, 2)
tws.Copy after:=Worksheets(Sheets.Count)
Set Ws = Application.ActiveSheet
Ws.Name = arr(i, j)
Next
Next
' Application.ScreenUpdating = True
End Sub
我想改进代码中的以下内容 - 但不知道如何
- 想知道代码是否高效 - 或者是否没有错误
- 我想将其分发给一组工程师 - 我该怎么做。我不应该假设他们知道如何在 VBA 中使用此代码 - 是否可以将其作为可执行 excel 提供?