Excel-VBA检查工作表是否存在,如果存在,请更改范围中的第一个空单元格

Excel-VBA检查工作表是否存在,如果存在,请更改范围中的第一个空单元格,vba,excel,Vba,Excel,我下面的代码应该基于数据表A列中的值创建CMR表的副本,然后将值从行复制到CMR副本的特定单元格(单元格索引在数据表中表示为表头) 代码执行副本,根据值命名副本,并将数据添加到CMR副本的特定单元格中。问题是当我有更多行与一个CMR副本编号相关时(例如592):如果CMR副本已经存在,代码应该将数据添加到C38:C50范围内的下一个空单元格 我尝试了至少if-else语句,但对于现有的工作表,它不能正常工作。e、 g.如果名为“592”的工作表已经存在,则仍在制作名为“工作表(x)”的副本。可能

我下面的代码应该基于数据表A列中的值创建CMR表的副本,然后将值从行复制到CMR副本的特定单元格(单元格索引在数据表中表示为表头)

代码执行副本,根据值命名副本,并将数据添加到CMR副本的特定单元格中。问题是当我有更多行与一个CMR副本编号相关时(例如592):如果CMR副本已经存在,代码应该将数据添加到C38:C50范围内的下一个空单元格

我尝试了至少if-else语句,但对于现有的工作表,它不能正常工作。e、 g.如果名为“592”的工作表已经存在,则仍在制作名为“工作表(x)”的副本。可能存在的东西总是什么都不是。你能帮忙吗

另外,当我想将值从范围C38:C50添加到第一个空单元格,而不是直接添加到C38时,我不确定如何更改else语句

谢谢你,非常感谢你的帮助

子CreateCMR()


结束Sub

快速注释,您还需要限定
行。使用要在其上运行的工作表计数
,否则它将在活动工作表上运行,不管是什么。清除
“出错时继续下一步”
,然后查看它是否在某个地方给您带来错误。然后,阅读OERN,以及为什么它有大约2种有用的情况和大约7种不有用的情况。“数据”表在哪里?它被重命名了-在模板2之前,我看到我没有更改下面的语句,但在模板2声明之前,这不是问题。
Dim ListSh As Worksheet, BaseSh As Worksheet
Dim NewSh As Worksheet
Dim ExistingSh As Worksheet
Dim ListOfNames As Range, LRow As Long, Cell As Range
Dim counter As Integer


With ThisWorkbook
    Set ListSh = .Sheets("Data")
    Set BaseSh = .Sheets("CMR")
End With

LRow = ListSh.Cells(Rows.Count, "A").End(xlUp).Row
Set ListOfNames = ListSh.Range("A2:A" & LRow)
counter = 2


For Each Cell In ListOfNames
    Set ExistingSh = Nothing
    On Error Resume Next
    Set ExistingSh = Worksheets(Cell.Value)

    If ExistingSh Is Nothing Then

        BaseSh.Copy After:=Sheets(Sheets.Count)
        Set NewSh = ActiveSheet

        With NewSh
            .Name = Cell.Value
        End With

        NewSh.Cells(2, 34) = Worksheets("Template2").Cells(counter, 3)

    Else

        Set ExistingSh = ActiveSheet

        ExistingSh.Cells(38, 3) = Worksheets("Template2").Cells(counter, 16)

    End If
    On Error Goto 0

    counter = counter + 1
Next Cell

With Application
    .ScreenUpdating = True
End With

ListSh.Activate
MsgBox "Done"