Excel-VBA检查工作表是否存在,如果存在,请更改范围中的第一个空单元格
我下面的代码应该基于数据表A列中的值创建CMR表的副本,然后将值从行复制到CMR副本的特定单元格(单元格索引在数据表中表示为表头) 代码执行副本,根据值命名副本,并将数据添加到CMR副本的特定单元格中。问题是当我有更多行与一个CMR副本编号相关时(例如592):如果CMR副本已经存在,代码应该将数据添加到C38:C50范围内的下一个空单元格 我尝试了至少if-else语句,但对于现有的工作表,它不能正常工作。e、 g.如果名为“592”的工作表已经存在,则仍在制作名为“工作表(x)”的副本。可能存在的东西总是什么都不是。你能帮忙吗 另外,当我想将值从范围C38:C50添加到第一个空单元格,而不是直接添加到C38时,我不确定如何更改else语句 谢谢你,非常感谢你的帮助 子CreateCMR()Excel-VBA检查工作表是否存在,如果存在,请更改范围中的第一个空单元格,vba,excel,Vba,Excel,我下面的代码应该基于数据表A列中的值创建CMR表的副本,然后将值从行复制到CMR副本的特定单元格(单元格索引在数据表中表示为表头) 代码执行副本,根据值命名副本,并将数据添加到CMR副本的特定单元格中。问题是当我有更多行与一个CMR副本编号相关时(例如592):如果CMR副本已经存在,代码应该将数据添加到C38:C50范围内的下一个空单元格 我尝试了至少if-else语句,但对于现有的工作表,它不能正常工作。e、 g.如果名为“592”的工作表已经存在,则仍在制作名为“工作表(x)”的副本。可能
结束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"