VBA从Excel标签名称中删除前缀
我有一个很多标签的Excel文件。 所有标签都被命名为:“pboro bz.csv”,“pboro fd.csv”,“pboro ha.csv”等。
我正在寻找重新命名所有这些“bz.csv”,“fd.csv”,“ha.csv”。
此外,根据另一个VBA导入的数据,选项卡名称可能具有不同的前缀。 因此,我在标题为“设置”的表格中有一个单元格(B8),其中带有我希望删除的前缀,在这种情况下,“pboro”
我正在尝试使用此代码:
Sub RemovePrefix() Dim WS As Worksheet Dim Val As String Val = Setup.Range("B8").Value Const Prefix As String = Val For Each WS In Worksheets If WS.Name Like Prefix & "*" Then WS.Name = Mid(WS.Name, Len(Prefix) + 1) Next End Sub
代码崩溃了
Const Prefix As String = Val
错误“需要常量expression式”
我怀疑这是因为我使用Dim与Val,然后Const与Prexif。 但是,当我将代码调整为以下内容时:
Sub RemovePrefix() Dim WS As Worksheet Dim Val As String Val = Setup.Range("B8").Value For Each WS In Worksheets If WS.Name Like Val & "*" Then WS.Name = Mid(WS.Name, Len(Val) + 1) Next End Sub
我收到与我的代码行有关的错误“Object required”
Val = Setup.Range("B8").Value
我不确定我哪里错了(而且是一个相对的VBA noob可能不帮助)。
现在它崩溃了,因为你从来没有将Setup
为工作表。
Dim setup as Worksheet Set setup = Sheets("Setup")
应该做的伎俩。 此外,它看起来像Val
将改变,所以你不希望将其设置为Constant
。