我有一个 vba 代码来连接不同列中的值。其中一根柱子; M 列 - 是日期,格式为 dd/mm/yyyy。我想将其日期的整数值与单元格中的其他值连接起来。
我正在尝试使用 Int(CDbl("date"))
将日期值转换为 int,然后使用它与其他单元格连接。
我当前的vba代码是:
Dim datevar As Integer
For i = 1 to LastRow
datevar = Int(CDbl(Sheets("Project_Name").Cells(i, 13).value))
target.location.formula = "=Project_Name!B" & i & "&UPPER(Project_Name!D" & i & ")&Project_Name!E" & i & "&Project_Name!F" & i & "&Project_Name!G" & i & "&Project_Name!H" & i & "&Project_Name!I" & i & datevar & ""
Next i
当我运行此命令时,我在 datevar = Int(CDb1(...))
行上收到“类型不匹配”错误:
有人可以告诉我为什么会出现错误,以及是否有更有效的工作方式?
编辑
好吧 - 我收到错误,因为 CDbl 无法将字符串转换为 double ...但是,该单元格中的值肯定是日期而不是字符串。解决这个问题的最佳方法是什么?
最佳答案
使用日期时,最好将其值存储为 Double
而不是 Integer
。
只需使用:
datevar = Sheets("Project_Name").Cells(i, 13).Value
您可以添加以下行来防止出现非整数值:
If IsNumeric(Sheets("Project_Name").Cells(i, 13).Value) And Sheets("Project_Name").Cells(i, 13).Value > 0 Then
注意:您可以使用Double
或Long
来存储日期值。
Integer
限制为最大 32,767 的值,请阅读 HERE .
如果我们查看今天的日期,2018 年 8 月 17 日的值为 43,329,超出了整数
上限,这就是您收到错误的原因。
关于vba - 以整数形式插入日期 (Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51895719/