vba - 使用 .Value() 分配时,十进制字符串会转换为数字格式
问题描述
我有一个数据集,我需要在其中传输数据以使其符合用于解释此数据的格式。为此,我需要将两列数据合并为一列。为此,我将第二列的数据粘贴到第一列中的数据下方。
为此,我首先在所需位置添加所需数量的空行。然后我需要复制伴随这些数据的图例。图例有两列,一列带有问题标识符,一列带有问题。
在复制此图例时,会隐式进行类型转换,这是不需要的。
我使用以下代码复制图例:
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
在此代码中,所有变量都显式声明为适当的类型(worksheet
对于 wss,Long
对于行相关变量)
当我运行这段代码时,大部分复制都是正确的,除了一个值。有一个值3.2
存储为字符串,因为我使用的是欧洲版本的 excel。当我将其复制过来时,它会转换为十进制值而不是字符串:3,2
。
要复制的其余范围是该Long
类型的值,不应将其转换为字符串值。
这种类型转换是否源于我对 的使用.Value
?如果是这样,如何避免这种行为?
解决方案
Excel 试图提供帮助。为避免自动转换,您必须在将值分配给单元格时使用撇号作为前缀,或者在将值放入单元格之前为单元格使用文本格式,如下所示:
wss.cells(lastrow_kennis + j , 1) = "'" & wss.cells(row_kennis -1 + j , 1).Value
或者:
wss.cells(lastrow_kennis + j, 1).NumberFormat = "@"
推荐阅读
- php - 将阿拉伯语参数传递给 PHP exec
- django - 如何从 Django 的管理日志中添加可排序的列
- javascript - Django-Ajax:使用包含文件字段的 AJAX 提交表单,给我 500 错误:“FieldFile”类型的对象不是 JSON 可序列化的
- python - 如何使用 iterrows 和 iteritems 更快地运行这个 pandas for 循环
- javascript - 具有固定列的响应式水平滚动表
- sql - 对 Vertica 中的查询的 OFFSET 影响
- node.js - nodemon自动重新加载不适用于docker
- colors - 不同颜色图像的 Openlayer 聚类
- vba - 使用 vba 上的选项卡拆分文本
- javascript - javascript中特定字符的密码验证