2016-03-31 2 views
-2

Я пишу макро, форматируя все нечисловые ячейки в текст перед загрузкой в ​​базу данных. У меня есть строка, в которой я понятия не имею, в чем дело. У меня хорошие навыки VBA. Я получаю ошибку времени выполнения «424».Форматирование динамического диапазона как текст

Sub formatAllCellsAsText() 

    Dim wsTemp As Worksheet 
    Dim LastRow As Long 
    Dim LastColumn As Long 
    Dim StartCell As Range 
    For sht = 3 To Worksheets.Count 
     Set wsTemp = Sheets(sht) 
     Set StartCell = Range("A4") 
     LastRow = wsTemp.Range("A1").CurrentRegion.Rows.Count 
     LastColumn = wsTemp.Range("A1").CurrentRegion.Columns.Count 
     For Each Cell In wsTemp.Range(StartCell, wsTemp.Cells(LastRow, LastColumn)).Cells 

     If Not IsEmpty(Cell.Value) And IsNumeric(Cell.Value) And InStr(wsTemp.Cells(1, Cell.Column), "Client ID") <= 0 Then 

      Dim Temp As Double 
      Temp = Cell.Value 
      Cell.ClearContents 
      Cell.NumberFormat = "@" 
      Cell.Value = CStr(Temp) 
      End If 
     Next 
    Next sht 
End Sub 
+2

Всегда помогает указать, какую строку выдает ошибка –

+0

Вы должны действительно включить гласный в 'sht'. Это может иметь решающее значение. –

+0

Кроме того, чтобы указать, какая строка вызывает ошибку, также укажите * текст * ошибки. Мы не можем всегда помнить, какой текст принадлежит числу ошибок! –

ответ

1
Set StartCell = Range("A4") 

должен быть

Set StartCell = wsTemp.Range("A4") 
0

Просто хочу, чтобы подвести итог, как я, вероятно, нашел проблему. В моем первом выпущенном коде я не задал переменную Cell, о которой я позже упоминал. Я подумал, что Cell не будет объяснять VBA.

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