根据循环

时间:2016-09-06 08:23:55

标签: excel vba

我有一个名为“模板”的模板表。

我在另一个名为“Formulation”的工作表上有一系列单元格,我希望它通过“G7:W7”范围查看并创建“模板”的副本并相应地重命名。

我已经调整了一段我找到的代码但是我遇到了运行时错误13 - 类型不匹配。

以下是代码:

`Sub CopyInfoSheetandInsert()
'
' CopyInfoSheetandInsert Macro
'
Dim rcell As Range
Dim Background As Worksheet
Set Background = Sheets("Formulation")

For Each rcell In Range("D7:W7")

    If rcell.Value <> "" Then

          Sheets("Template").Copy Before:=Sheets("COSHH")
          Sheets("Template (2)").Name = rcell.Value

    End If

Next rcell



End Sub

非常感谢任何建议!

更新

通过将宏按钮移动到配方页面,复制功能现在可以正常工作,但是在下面的代码行中我现在得到一个超出范围错误的下标?

Sheets("Template(2)").Name = rcell.Value

亲切的问候,

1 个答案:

答案 0 :(得分:1)

您需要以下内容:

Sub CopyInfoSheetandInsert()

Dim rcell As Range
Dim Background As Worksheet
Set Background = Sheets("Formulation")

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
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