Другие языки программирования и технологии
run-time error 13 type mismatch Excel
Sub Rrr() With Sheets("Ñïðàâ") If .Cells(14, 7) = 14 Then a = .Cells(12, 7): t = Cells(3, 1) .Cells(14, 7) = 13 For m = 8 To .Cells(8, 8) Cells(a - 14, m) = Cells(a - 2, m) Cells(a, m) = IIf(Int(Cells(t, m)) = 0, Empty, Cells(t, m)) Next m Range(Rows(a + 1), Rows(t - 3)).Delete Range(Cells(a - 13, 8), Cells(a - 2, .Cells(8, 8))).ClearContents .Cells(16, 7) = .Cells(28, 7) .Cells(14, 7) = 1 End If .Cells(14, 8) = Cells(1, 1) m = .Cells(12, 8) If m <> "" Then Rows(m).Hidden = True m = .Cells(13, 8) If m <> "" Then Rows(m).Hidden = False <---------Ошибку показывает тут, как исправить( End With End Sub
Вы где ставите еочку перед Cells, а где нет. Без точки значения не определены. Ваш код с точками где надо
Sub Rrr()
With Sheets("Справ")
If .Cells(14, 7) = 14 Then
a = .Cells(12, 7): t = .Cells(3, 1)
.Cells(14, 7) = 13
For m = 8 To .Cells(8, 8)
.Cells(a - 14, m) = .Cells(a - 2, m)
.Cells(a, m) = IIf(Int(.Cells(t, m)) = 0, Empty, .Cells(t, m))
Next m
Range(Rows(a + 1), Rows(t - 3)).Delete
Range(.Cells(a - 13, 8), .Cells(a - 2, .Cells(8, 8))).ClearContents
.Cells(16, 7) = .Cells(28, 7)
.Cells(14, 7) = 1
End If
.Cells(14, 8) = .Cells(1, 1)
m = .Cells(12, 8)
If m <> "" Then Rows(m).Hidden = True
m = .Cells(13, 8)
If m <> "" Then Rows(m).Hidden = False
End With
End Sub
Без данных в таблице проверить код на 100% нет возможности
Ну и предыдущий совет о переменной m учтите.
Sub Rrr()
With Sheets("Справ")
If .Cells(14, 7) = 14 Then
a = .Cells(12, 7): t = .Cells(3, 1)
.Cells(14, 7) = 13
For m = 8 To .Cells(8, 8)
.Cells(a - 14, m) = .Cells(a - 2, m)
.Cells(a, m) = IIf(Int(.Cells(t, m)) = 0, Empty, .Cells(t, m))
Next m
Range(Rows(a + 1), Rows(t - 3)).Delete
Range(.Cells(a - 13, 8), .Cells(a - 2, .Cells(8, 8))).ClearContents
.Cells(16, 7) = .Cells(28, 7)
.Cells(14, 7) = 1
End If
.Cells(14, 8) = .Cells(1, 1)
m = .Cells(12, 8)
If m <> "" Then Rows(m).Hidden = True
m = .Cells(13, 8)
If m <> "" Then Rows(m).Hidden = False
End With
End Sub
Без данных в таблице проверить код на 100% нет возможности
Ну и предыдущий совет о переменной m учтите.
У Вас очень опасно меняется m (какого типа? ) - она как описана вообще вне SubRrr? Подозреваю что по умолчанию => Variant
То Вы её как целое число используете, то как текст. задайте один тип и переменную для получения значений, другой, для цикла и т. д. а то запутаетесь и будут такие проблемы.
Подозреваю, что m у Вас стало либо числом, а Вы пытаетесь его сравнить со строкой, либо наоборот у Вас оно строка, а дальше в Rows вы пытаетесь получить от неё столбец.
Поставьте точку останова на if m и посмотрите чему равно m
Ну или Debug.Print m перед if m<>"" и смотрите в окно, где выводятся сообщения от Debug
То Вы её как целое число используете, то как текст. задайте один тип и переменную для получения значений, другой, для цикла и т. д. а то запутаетесь и будут такие проблемы.
Подозреваю, что m у Вас стало либо числом, а Вы пытаетесь его сравнить со строкой, либо наоборот у Вас оно строка, а дальше в Rows вы пытаетесь получить от неё столбец.
Поставьте точку останова на if m и посмотрите чему равно m
Ну или Debug.Print m перед if m<>"" и смотрите в окно, где выводятся сообщения от Debug
Решил с помощью WindowFix эту тему.
Имелась такая проблема, получилось решить с помощью этого:


Похожие вопросы
- Ошибка в языке С++ :"Run-Time Check Failure #3 - The variable 'interval2' is being used without being initialized".
- Вставка "вложенной" таблицы в Excel (или Access)
- Программирование в Excel - VBA
- Необходимо создать макрос для excel
- вопрос по "множественному" ЕСЛИ в логических формулах Excel 2007 и 2010
- MO Excel
- Excel сошёл с ума (вопрос по VBA)
- Error C2065: cout: необъявленный идентификатор
- Как рассчитать стаж между определенными датами с помощью MS OF EXCEL
- Возможно ли сохранить лист Excel в формате JPEG