将工作表复制到新的工作簿,并将工作表的名称更改为撰写名称
我将许多工作簿复制到1个工作簿,但由于不同工作簿上的所有工作表都具有相同的名称,并且每个工作簿都具有B1上文件的名称,所以我想将新工作表命名为“违规(名称)”
这是我对这部分的代码
Dim wc As Worksheet Dim ws As Worksheet Dim SheetNewName As String Dim Parname As String Dim SheetName As String Select Case wc.Cells(n, 1) Case "PK" SheetName = "Peak" Case "Sfactor" SheetName = "SF Supply" Case Else SheetName = wc.Cells(n, 1) End Select Set ws = ThisWorkbook.Sheets("Sheet1") Set wc = ActiveWorkbook.Sheets("Violations Summary") Set Parname = wc.Range("B1") Set SheetNewName = SheetName & "(" & Parname & ")" ActiveWorkbook.Sheets(SheetName).Copy After:=ThisWorkbook.Sheets(1) Set lastsheet = ThisWorkbook.Sheets(ThisWorkbook.Sheets.count).Select lastsheet.Name = SheetNewName
试图更改新工作簿上的新工作表的名称时出现错误,错误是
运行时错误“13”:types不匹配
在这些线上
Set SheetNewName = SheetName & "(" & Parname & ")"
但是,如果我修改代码是这样的
Set Parname = wc.Range("B1") Set SheetNewName = SheetName & "(" & Parname & ")" ActiveWorkbook.Sheets(SheetName).Copy After:=ThisWorkbook.Sheets(1) Set lastsheet = ThisWorkbook.Sheets(1).Select lastsheet.Name = Parname
它复制表单,但不能更改名称并出错
运行时错误“1004”:应用程序定义或对象定义的错误
你不能"SET"
为stringvariables:
Set SheetNewName = SheetName & "(" & Parname & ")"
需要修改为
SheetNewName = SheetName & "(" & Parname & ")"
和
Set Parname = wc.Range("B1")
需要是
Parname = wc.Range("B1")