我试图根据输入的单元格的文本命名工作表,具体如下:
Sheet2.Name = Range("C2")
这在另一个宏中运行:
Sub Sheetname()
Sheet3.Unprotect
ThisWorkbook.Unprotect
Sheet3.Name = Range("C2")
Sheet3.Protect ""
ThisWorkbook.Protect
End Sub
在我的主宏中,它给了我
运行时错误“1004”
方法“名称”的对象‘_工作表’失败
Sub write_date_plant1()
ThisWorkbook.Unprotect
Sheets("Total").Unprotect
Sheets("MPT").Unprotect
Dim score As Integer
score = WorksheetFunction.WeekNum(Now())
'score = Range("B1").Value
If score = Worksheets("MPT").Range("B3") Then
Sheets("MPT").Range("B4").Value = Sheet2.Range("ok_plant1").Value
Sheets("MPT").Range("B5").Value = Sheet2.Range("minor_plant1").Value
Sheets("MPT").Range("B6").Value = Sheet2.Range("pdca_plant1").Value
Sheets("MPT").Range("B7").Value = Sheet2.Range("major_plant1").Value
Sheets("MPT").Range("B8").Value = Sheet2.Range("nope_plant1").Value
End If
...
If score = Worksheets("MPT").Range("Q3") Then
Sheets("MPT").Range("Q4").Value = Sheet2.Range("ok_plant1").Value
Sheets("MPT").Range("Q5").Value = Sheet2.Range("minor_plant1").Value
Sheets("MPT").Range("Q6").Value = Sheet2.Range("pdca_plant1").Value
Sheets("MPT").Range("Q7").Value = Sheet2.Range("major_plant1").Value
Sheets("MPT").Range("Q8").Value = Sheet2.Range("nope_plant1").Value
End If
Sheets("Total").Range("C4") = Date
Sheet2.Name = Range("C2")
Sheets("Total").Protect
Sheets("MPT").Protect
ThisWorkbook.Protect
End Sub
发布于 2019-12-17 09:21:50
到目前为止,运行时错误1004最常见的原因是VBA代码引用了不存在的命名范围。也许这个名字在代码中拼错了。或者可能使用了无效的名称。
检查您的所有范围是否存在:
Sheets("Total")
Sheets("MPT")
Sheet2.Name = Range("C2")
Sheet2.Range("ok_plant1")
Sheet2.Range("minor_plant1")
Sheet2.Range("pdca_plant1")
Sheet2.Range("pdca_plant1")
Sheet2.Range("nope_plant1")
如果存在上述范围,请检查它们。
https://stackoverflow.com/questions/59370869
复制相似问题