Excel VBA中的宏代码是';我没有按预期运行
我正在尝试编写一个宏,其中EXCEL执行以下操作:Excel VBA中的宏代码是';我没有按预期运行,excel,vba,Excel,Vba,我正在尝试编写一个宏,其中EXCEL执行以下操作: 更改A1、B1、C1等中的数据。。。到特定日期格式(dd-mm-yyy) 使用DATEDIFF函数计算A1和B1中的值之间以及A1和C1之间的天数 将DateDIFF函数的结果放入另一个单元格 我不断得到奇怪的值并重置我的函数 这是我现在正在使用的代码,但我不断遇到错误: Private Sub CommandButton1_Click() Range("A1:A5000").NumberFormat = "dd-mm-yyyy" Rang
- 更改A1、B1、C1等中的数据。。。到特定日期格式(dd-mm-yyy)
- 使用DATEDIFF函数计算A1和B1中的值之间以及A1和C1之间的天数
- 将DateDIFF函数的结果放入另一个单元格
Private Sub CommandButton1_Click()
Range("A1:A5000").NumberFormat = "dd-mm-yyyy"
Range("B1:B5000").NumberFormat = "dd-mm-yyyy"
End Sub
Private Sub CommandButton2_Click()
Dim n As Variant
Dim Range("A1:A5000") As Date
Dim Range("B1:B5000") As Date
n = DateDiff("d", Range("A1:A5000"), Range("B1:B5000"))
n = Range("C1:C5000")
End Sub
更新:
VBA中的错误=类型不匹配
对此有更多的解释:
关于,没有进一步的信息,假设你的目标。。。这可能会帮助您:
Private Sub CommandButton2_Click()
Dim n As Long 'it will give you a number
Dim LastRow As Long
Dim C As Range
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("SheetName") 'change this to the actual sheet name
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row 'last row on column A
For Each C In .Range("A1:A" & LastRow)
C.Offset(0, 2) = DateDiff("d", C, C.Offset(0, 1))
Next C
End With
Application.ScreenUpdating = True
End Sub
你是想做一个A1-B1的datediff还是整个范围的datediff?你键入的最后一段表明结尾应该有更多的代码?但是没有-您可以使用该链接添加该代码。此外,请包括您收到的错误消息,并指出触发每个错误的代码行。这些信息不足以理解您遇到的问题。我正在尝试确定整个范围的日期