所以这是我以前从未遇到过的问题。我从一个单元格导入一个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。
非常感谢。
答案 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。