【发布时间】:2016-09-23 19:11:30
【问题描述】:
我有一些代码可以自动格式化和复制模板并创建副本以与相应的示例一起使用,例如单元格 H5 = Batch1,它创建一个工作表 Batch1.. 单元格 I5 = "Magenta",它创建一个名为 "Magenta" 的工作表。
我现在想编写一个宏,它将数据从一系列单元格复制到其中一个创建的工作表中。但是尚未创建工作表。
有没有办法使用单元格引用来指向数据的存储位置?
例如工作表将被命名为单元格 H5 中的任何内容。所以使用单元格引用指向工作表而不是使用绝对工作表名称?
感谢您的帮助!
Sub CopyInfoSheetandInsert()
Dim rcell As Range
Dim Background As Worksheet
Set Background = Sheets("Formulation")
Application.ScreenUpdating = False
Sheets("Template").Visible = True
For Each rcell In Range("D7:W7")
If rcell.Value <> "" And SheetExists(rcell.Value) = False Then
Sheets("Template").Copy Before:=Sheets("COSHH")
Sheets(Sheets("COSHH").Index - 1).Name = rcell.Value
End If
Next rcell
Sheets("Template").Visible = False
Application.ScreenUpdating = True
End Sub
Function SheetExists(SheetName) As Boolean
Dim sht As Worksheet
'Assume Failure
SheetExists = False
For Each sht In ActiveWorkbook.Sheets
If sht.Name = SheetName Then
'Success
SheetExists = True
Exit Function
End If
Next sht
End Function
【问题讨论】:
-
这应该很简单,但您能否将代码的复制部分添加到问题中,以便我们查看您当前如何引用工作表。
-
Thisworkbook.Sheets(Thisworkbook.Sheets("Worksheet_Name").Range("H5").Value)? -
所以我创建的电子表格工作正常,代码在上面。但是例如..我在 D34:D38 中有一系列数据,我想将其复制到用 D7 编写的工作表名称中。