【发布时间】:2013-08-20 15:08:11
【问题描述】:
当我试图弄清楚这段代码在哪里出错时,我不知所措。我希望通过在活动表上使用两个范围的连接和一些静态文本来重命名活动表。当工作簿中只有一个工作表时,代码效果很好。添加第二个工作表后,我会收到运行时错误 1004。我将突出显示它中断的代码行。此代码当前位于普通模块中。
Option Explicit
Sub updateName()
Dim fNumber
Dim pCheckNumber
Dim asName As String
Dim tempASName As String
Dim worksheetName As Object
If ActiveSheet.Name = "Launch Page" Then Exit Sub
fNumber = ActiveSheet.Range("FlightNumber").Value
pCheckNumber = ActiveSheet.Range("PerformanceCheckNumber").Value
If fNumber <> "" And pCheckNumber <> "" Then
tempASName = "Flight " & fNumber & " | Run " & pCheckNumber & " (0.0%)"
asName = tempASName
MsgBox ActiveSheet.Name & vbCr & asName
ActiveSheet.Name = asName
worksheetName.Caption = asName
Else
Exit Sub
End If
End Sub
我正在添加错误检查以确保我没有重复的工作表名称。但是,由于字段名称的性质,这永远不会发生。
感谢所有的见解!
【问题讨论】:
-
那么,代码哪里出错了?
-
你能添加
asName变量的样本值吗?可能存在不允许在工作表名称中使用的字符或/和文本可能超出工作表名称的长度限制。 -
抱歉,代码在“if”语句处中断 - ActiveSheet.Name 行。上例中 asName 的值为“Flight 5 | Run 1 (0.0%)。据我所知,我没有使用任何禁止字符,并且在 31 个字符的限制内。
-
fNumber 和 pCheckNumber 是个位整数
标签: vba runtime-error rename concat