Excel VBA 424 错误对象需要,在单元格(行,列)。值

Posted

技术标签:

【中文标题】Excel VBA 424 错误对象需要,在单元格(行,列)。值【英文标题】:Excel VBA 424 error Object Required, in Cells(row, col).Value 【发布时间】:2014-08-27 17:37:50 【问题描述】:

这是我的第一个 VBA 脚本,当我在代码下方摩擦时,我得到 424 错误 Cells(row, col).Value = Val(data(index))Cells(row, col).Value = data(index)。我是 VBA 脚本的大一新生。那么如何解决这个错误。

非常感谢。

Sub ImportFile()
Dim TextLine
Dim drng As Range
Dim n As Integer
Dim row As Long, col As Long
Dim inde As Integer
Dim data() As String
Dim BegRow As Long, BegCol As Long
Dim index As Integer
Dim cell As Range
BegRow = 2 
BegRow = 1 
BegCol = 1
Columns("A").AutoFit
Columns("B").AutoFit
Columns("C").AutoFit
Columns("D").AutoFit
Columns("E").AutoFit
Columns("F").AutoFit
Columns("G").AutoFit
Columns("H").AutoFit
Columns("I").AutoFit
Columns("J").AutoFit
Columns("K").AutoFit
Columns("L").AutoFit
Columns("M").AutoFit
Columns("M").AutoFit
Columns("O").AutoFit
Columns("P").AutoFit
Columns("Q").AutoFit
Columns("R").AutoFit
Columns("S").AutoFit
Columns("T").AutoFit


With Application.FileDialog(msoFileDialogFilePicker)
    .Title = "Select txt file"
    .Filters.Add "All Files", "*.txt"
    .FilterIndex = 2
    .AllowMultiSelect = False
    .Show

        f = Trim(.SelectedItems.Item(1))
        Open f For Input As #1        
        Do While Not EOF(1)           
            Line Input #1, TextLine    
            TextLine = DeleteSpace(Trim(TextLine))
            data = Split(TextLine, "|")
            n = UBound(data)
            col = BegCol
            For index = 0 To n
                If IsNumeric(data(inde)) Then
                    `**Cells(row, col).Value = Val(data(index))**`
                Else
                    **Cells(row, col).Value = data(index)**
                End If
                col = col + 1
            Next  ' Index
            col = BegCol
            row = row + 1
        Loop
        Close #1    
End With

End Sub

Function DeleteSpace(ByVal str As String) As String 将 Strtemp 调暗为字符串

Strtemp = str
While Replace(Strtemp, "  ", " ") <> Strtemp
    Strtemp = Replace(Strtemp, "  ", " ")
Wend
DeleteSpace = Strtemp

End Function

`

【问题讨论】:

你初始化row值了吗?另外,使用Columns("A:T").AutoFit 而不是单个列 A) 你在哪里初始化 Row 和 Col B) 的值还有“IsNumeric(data(inde))”? “Inde”中缺少一个“X” @SiddharthRout 谢谢,你是对的 【参考方案1】:

row 在使用之前没有被赋值。可能还有其他错误。

【讨论】:

以上是关于Excel VBA 424 错误对象需要,在单元格(行,列)。值的主要内容,如果未能解决你的问题,请参考以下文章

删除行时需要 Excel VBA 运行时错误“424”对象

将对象粘贴到空单元格/工作表时出现错误 424 未被识别为对象

End Sub 上需要错误 424 对象

EXCEL的VBA ,连接数据库,运行时错误 424 要求对象

在Excel VBA中,如何测试Excel.Range对象变量是否丢失其引用而不会引发运行时错误424 ..?

引用 Outlook VBA 中的 Excel 单元格的应用程序定义或对象定义错误