2014-08-27 3 views
0

Это мой первый VBA скрипт, когда я тереть ниже код, я получил Ошибка на ячеек (строка, столбец) .Value = Val (данные (индекс)) и Ячейки (строка, col) .Value = данные (индекс). Я новичок в VBA Script. поэтому как исправить эту ошибку.Excel VBA 424 Ошибка объекта, в ячейках (строка, столбец) .Value

Большое спасибо.

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 As String

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

End Function

`

+1

Вы инициализировали значение 'row'? Также используйте «Столбцы» («A: T»). AutoFit' вместо отдельных столбцов – EvenPrime

+1

'A)' Где вы инициализируете значение Row и Col 'B)' Также также IsNumeric (data (inde))? Отсутствует «X» в «Inde» –

+0

@SiddharthRout Спасибо, вы правы – maple

ответ

1

строки не назначал значение до его использования. Могут быть и другие ошибки.

+0

спасибо, многое изменилось, да, я не инициализирую col, и ряд – maple

Смежные вопросы