我正在尝试根据同一工作簿中特定单元格特定工作表中的值创建多个工作表工作表名称。
然后将另一个工作表中的值复制到已创建的工作表中。
我知道如何循环通过一组变化的值,所以这不是问题。下面是基于单元格中的值创建一个特定的电子表格。
我在转换新电子表格变量的名称以在粘贴语句中使用时遇到问题。
单元格sheets("Input").Range("H2")
存储了一个包含要创建的工作表名称的公式Sheets("Forms").Range("PrintRng")
来自源工作表,其中包含要复制到新工作表
中的格式化公式和文本值。请查看附件中的VBA并提出解决方案。
Sub AddNewSheetswithNameExample2()
Sheets.Add.Name = Sheets("Input").Range("H2")
Dim wsName As Variant
Set wsName = Sheets("Input").Range("H2")
Sheets("Form").Range("PrintRng").Copy.Values
ActiveWorkbook.Sheets("wsName").Range("A1:M36").PasteSpecial Paste:=xlValues
End Sub
永远不要在变量名中加上引号。
所以正确的使用方法是ActiveWorkbook.Sheets(wsName)
(而不是ActiveWorkbook.Sheets(">wsName)">)
但是你的代码可以被增强:
Sub AddNewSheetswithNameExample()
dim wsName as String
wsName = ThisWorkbook.Worksheets("Input").Range("H2").value
Dim wsTarget As Worksheet
Set wsTarget = ThisWorkbook.Worksheets.Add
wsTarget.Name = wsName
Dim rgSource As Range
Set rgSource = ThisWorkbook.Worksheets("Form").Range("PrintRng")
With rgSource
wsTarget.Range("A1").Resize(.Rows.Count, .Columns.Count).Value = .Value
End With
End Sub