vba - 以整数形式插入日期 (Excel)

标签 vba excel

我有一个 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(...)) 行上收到“类型不匹配”错误:

enter image description here

有人可以告诉我为什么会出现错误,以及是否有更有效的工作方式?

编辑

好吧 - 我收到错误,因为 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

注意:您可以使用DoubleLong来存储日期值。 Integer 限制为最大 32,767 的值,请阅读 HERE .

如果我们查看今天的日期,2018 年 8 月 17 日的值为 43,329,超出了整数 上限,这就是您收到错误的原因。

关于vba - 以整数形式插入日期 (Excel),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51895719/

相关文章:

c# - 读取上传的 Excel 文件

excel - 引用不同的工作簿

用于设置/重置过滤器的 VBA Excel 文件对话框

excel - excel中日期时间相减

c# - Excel 互操作工作表副本引发异常 HRESULT : 0x800A03EC

vba - Excel VBA - 从剪贴板粘贴

ms-access - Access : Move to previous record until BOF

具有日期条件的表的 vba excel AdvancedFilter 方法不起作用

Excel VBA : Sort, 然后复制并粘贴

c# - 无法使用 C# 保存 Excel 文件