Sheet18.Range("B" & j) = Sheet18.Range("T" & i) 有效,但 Sheet18.Range("C" & j) = Sheet18.Range("O" & i) 错误

问题描述 投票:0回答:1

我收到此错误,但我不明白它,因为我只是在执行一项我之前已经做过很多次的基本任务。完整的代码如下,直到到达 O 时才会出错,我用其他字母替换了 O,然后就可以正常工作了。为什么 O 栏不起作用?

运行时错误“1004”: 应用程序定义或对象定义的错误

Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim blankCount As Integer

'find the next blank row
j = 2
Do Until Sheet18.Range("A" & j) = ""
    j = j + 1
Loop

i = 2
blankCount = 0

Do Until blankCount = 4
    If Sheet18.Range("M" & i) = "" Then
        blankCount = blankCount + 1
    Else
        Sheet18.Range("A" & j) = Sheet18.Range("N" & i)
        Sheet18.Range("B" & j) = Sheet18.Range("T" & i)
        Sheet18.Range("C" & j) = Sheet18.Range("O" & i)
        Sheet18.Range("D" & j) = Sheet18.Range("L1")
        j = j + 1
        blankCount = 0
    End If
    i = i + 1
Loop

End Sub
runtime-error
1个回答
0
投票

我找到了如何修复 O 列。Excel 自动将数字视为日期格式“3 14 12 1:30 PM”,并且由于某种原因该格式阻止了宏正常工作。我选择了所有单元格并将格式更改为常规,现在一切都按预期工作。

我想后续问题是,为什么 Excel 默认将数字格式化为日期格式?

© www.soinside.com 2019 - 2024. All rights reserved.