我有一个数据集,我需要在其中传输数据以使其适合用于解释此数据的格式。为此,我需要将两列数据合并为一个列。为此,我将第二列的数据粘贴到第一列的数据下方。
为此,我首先在所需位置添加所需数量的空行。 然后,我需要复制此数据附带的图例。图例有两列,一列带有问题标识符,一列带有问题。
复制此图例时,会隐式进行类型转换,这是不必要的。
我使用以下代码复制图例:
Dim j as long
For j = 1 To numberrows_kennis
wss.cells(lastrow_kennis + j , 1) = wss.cells(row_kennis -1 + j , 1).Value
wss.cells(lastrow_kennis + j , 2) = wss.cells(row_kennis -1 + j , 2).Value
Next j
在此代码中,所有变量都明确声明为适当的类型(wss为worksheet
,行相关变量为Long
)
运行此代码时,除一个值外,大多数复制正常。
由于我使用的是欧洲版的excel,因此3.2
的值存储为字符串。当我将其复制过来时,它会转换为十进制值而不是字符串:3,2
。
要复制的其余范围是Long
类型的值,不应将其转换为字符串值。
此类型转换是否源自我对.Value
的使用?如果是这样,如何避免这种行为?
答案 0 :(得分:1)
Excel试图提供帮助。为避免自动转换,在将值分配给单元格时,必须在其前面加上撇号,或在将值放入单元格之前对单元格使用文本格式,如下所示:
wss.cells(lastrow_kennis + j , 1) = "'" & wss.cells(row_kennis -1 + j , 1).Value
或:
wss.cells(lastrow_kennis + j, 1).NumberFormat = "@"