Vba 在单元格中插入以0开头的图纸名称

Vba 在单元格中插入以0开头的图纸名称,vba,excel,Vba,Excel,我想给一个单元格命名我的工作表(064149107)。无法更改名称,并且工作簿中有许多工作表 我的代码工作正常,除非工作表的名称以0开头 例如,我在单元格中得到的不是064149107而是64149107 在这之后我正在做一个vlookup,我没有找到匹配项,并且出现了一个错误2042 这是我的密码: sht.Cells(LastRowsht + 1, 2) = sht.Name 我也试过: If Left(sht.Name, 1) = "0" Then 'règle

我想给一个单元格命名我的工作表(064149107)。无法更改名称,并且工作簿中有许多工作表

我的代码工作正常,除非工作表的名称以0开头

例如,我在单元格中得到的不是064149107而是64149107

在这之后我正在做一个vlookup,我没有找到匹配项,并且出现了一个错误2042

这是我的密码:

sht.Cells(LastRowsht + 1, 2) = sht.Name
我也试过:

            If Left(sht.Name, 1) = "0" Then 'règle le probleme d'un sheet name commencant par 0
            sht.Cells(LastRowsht + 1, 2) = "0" & sht.Name
            Else
            sht.Cells(LastRowsht + 1, 2) = sht.Name
            End If

但是我没有工作。

此代码将在名称前面加一个勾号
字符

sht.Cells(LastRowsht + 1, 2).Value = chr(39) & sht.Name
或者,您可以先将单元格的格式设置为
Text

sht.Cells(LastRowsht + 1, 2).NumberFormat = "@"
sht.Cells(LastRowsht + 1, 2).Value = sht.Name

你能不能不试试这样的东西:

sht.Cells(LastRowsht + 1, 2).Value = "'" & sht.Name

我没有尝试过,但通过明确地将其设置为文本,我认为它应该可以工作。

您应该通过功能区“主页”更改单元格的格式,在“数字”选项卡中,将“常规”更改为“文本”。然后再次运行代码

但请注意,在单元格中填写图纸名称不需要VBA。这可以通过单元内公式实现:

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)

我猜Excel正在将字符串转换为数字。只需将值另存为字符串。请注意,将工作表名称放入单元格并不需要VBA。谢谢,太好了