VBA吃了我的零INSIDE一个字符串?

时间:2011-11-03 16:18:21

标签: string vba zero

所以这是我以前从未遇到过的问题。我从一个单元格导入一个ISIN(例如DE0002635307),该单元格被定义为文本。我需要使用它来引用该名称的单元格。所以:

sub ISINWriter

dim ISIN as String

ISIN = ThisWorkbook.Sheets(i).Cells(j, 4).Value()

ThisWorkbook.Sheets(i+1).Cells(f, 4).Formula = "=" & ISIN

End Sub

对于大多数ISIN,这可以正常工作,除非连续有4个或更多的零。如果发生这种情况 - 例如FR0000120073 - 它会将“= FR120073”写入单元格。它只是吃掉字符串中的零!有什么想法吗?

我使用Excel 2010和Windows 7。

非常感谢。

2 个答案:

答案 0 :(得分:2)

如果您使用名称管理器尝试创建名为“FR0000120073”的命名范围(或更准确地说是命名公式),那么您应该会发现出现错误。像(从我的机器上的Excel 2007):

The name that you entered is not valid.
Reasons for this can include:
- The name does not begin with a letter or an underscore
- The name contains a space or other invalid characters
- The name conflicts with an Excel built-in name or the name of another object in the workbook

线索是第三个原因的最后一部分。 FR120073是目前16Kx1m单元工作表中的有效单元地址。

上述第一个原因可能很有用:_FR0000120073 是有效名称。你能用吗?

答案 1 :(得分:1)

编辑:删除我的最后一个答案,这样才有意义。

基本上,您的单元格引用是AlphaNumeric值。以A1为例,A是第1列是行。出现此问题是因为0001与1相同。因此对单元格A001的引用将与单元格A1相同。

看起来Excel具有一些内置功能,可以从引用单元格中删除前导0。