在VBA中连接0

rak*_*afo 1 excel vba excel-vba

我有两列(第一列包含值0,第二列包含值1).

此语句返回1,而不是01

Cells(1, 26).Value = CStr(Cells(1, 24).Value) & CStr(Cells(1, 25).Value)
Run Code Online (Sandbox Code Playgroud)

我想在第3列中将它们连接起来01.我该怎么做呢?

小智 5

在单元格中放入整数值时,格式设置为number.您可以使用:

Cells(1, 26).NumberFormat = "@" 'This set cell format to Text
Cells(1, 26).Value = CStr(Cells(1, 24).Value) & CStr(Cells(1, 25).Value)
Run Code Online (Sandbox Code Playgroud)

  • 没有`CStr`的@MaciejLos仍然会发生类型转换,只是隐式.首选显式类型转换和成员调用(编写代码,说明它的作用*并执行它所说的*) - 它也可以不使用`.Value`,但省略它将是一个隐式的成员调用; 如果这是在一个不同于workhet的代码隐藏的地方,那么`Cells`隐含地指的是`ActiveSheet`,在这种情况下,适当的资格将是'Me.Cells`.如果涉及的任何单元包含错误值,则FWIW会以*类型不匹配*爆炸. (3认同)
  • 如果使用VBA不是更好的设置`Cells(1,26).NumberFormat ="00"`然后传输真实的数值? (2认同)
  • @Jeeped好点 - 取决于OP是否将"04"视为字符串或数字.IMO如果数据不打算用于任何算术或数字函数参数,那么将其作为字符串处理在语义上是正确的. (2认同)