Excel VBA – 从0开始的string
Dim testtext As String testtext = Worksheets("Sheet2").Range("B6").Value Worksheets("Sheet2").Range("B7").Value = testtext
一个单元格的内容简单复制到另一个单元格。 但是当B6的内容是'02345
– 运行macrosB7包含2345
后,我遇到了问题,我不想失去前导零。 我试着在代码的第二行用.Text
replace.Value
,这没有帮助。
如果将.NumberFormat属性更改为“@”,则它将在单元格中写入02345。
Dim testtext As String testtext = Worksheets("Sheet2").Range("B6").Value Worksheets("Sheet2").Range("B7").NumberFormat = "@" Worksheets("Sheet2").Range("B7").Value = testtext
这是因为标准单元格格式读取数字前导0的数字,因此前导0被删除。 通过强制Excel使用该特定单元格上的文本格式,它不会将其视为数值,而只是纯文本。
我不知道什么是Range
的默认属性,但无论如何
With Worksheets("Sheet2") .Range("B7") = .Range("B6") End With
似乎完美的工作。
如果你真的需要中间的testext
variables,我宁愿把它定义为Variant
。
尝试使用copy
方法将一个单元格的内容简单复制到另一个单元格的内
Worksheets("Sheet2").Range("B6").copy Worksheets("Sheet2").Range("B7")
您可以使用单元格的FormulaR1C1
属性插入导致Excel将其解释为文本的单引号。 这就模仿了最初在B6
input'02345
时实际发生的情况,您可以在打开macroslogging器的情况下进行validation:
Worksheets("Sheet2").Range("B7").FormulaR1C1 = "'" & testtext