У меня есть код, который работает нормально, но когда я закрываю файл, у меня есть код ошибки. Проблема в логике, где я хочу искать следующую пустую ячейку в столбце «C» после C24.Ошибка при закрытии файла
Private Sub ComboBox21_Change()
Dim NextFree As String
Dim Comboindex As Integer
Dim Combovalue As String
Comboindex = Sheet1.ComboBox21.ListIndex + 1
Combovalue = Sheet1.ComboBox21.Value
'NextFree = Range("C24:C" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row
Dim ws As Worksheet
Set ws = ActiveSheet
For Each cell In ws.Range("C24:C100")
If IsEmpty(cell) = True Then
NextFree = cell.Row
Exit For
End If
Next cell
If NextFree > 25 Then
Set ws1 = ThisWorkbook.Sheets("Feuil1")
With ws1
Set Rng = .Rows(NextFree - 1)
Rng.Copy
Rng.Offset(1).Insert Shift:=xlDown
Application.CutCopyMode = False
.Range("C" & NextFree & ":H" & NextFree).ClearContents
End With
End If
Worksheets("Feuil1").Cells(NextFree, 3).Value = Worksheets("Feuil2").Cells(Comboindex, 1).Value
Worksheets("Feuil1").Cells(NextFree, 5).Value = Worksheets("Feuil2").Cells(Comboindex, 2).Value
Worksheets("Feuil1").Cells(NextFree, 6).Value = Worksheets("Feuil2").Cells(Comboindex, 3).Value
Worksheets("Feuil1").Cells(NextFree, 8).Value = "=+F" & NextFree & "-(G" & NextFree & "*F" & NextFree & ")"
TotalHTF = "=SUM(H25:H" & NextFree & ")"
Worksheets("Feuil1").Cells(NextFree + 1, 8).Value = TotalHTF
TotalHT = Worksheets("Feuil1").Cells(NextFree + 1, 8).Value
TVAF = "=H" & NextFree + 1 & "*0.2"
Worksheets("Feuil1").Cells(NextFree + 2, 8).Value = TVAF
TVA = Worksheets("Feuil1").Cells(NextFree + 2, 8).Value
NetF = "=H" & NextFree + 1 & "+H" & NextFree + 2
Worksheets("Feuil1").Cells(NextFree + 3, 8).Value = NetF
Net = Worksheets("Feuil1").Cells(NextFree + 3, 8).Value
End Sub
На данный момент ошибка при закрытии файла является: «Переменная объекта или блока переменной не установлено»
В строке:
For Each cell In ws.Range("C24:C100")
Как вы можете видеть, я попытался также перед использованием опциона:
'NextFree = Range("C24:C" & Rows.Count).Cells.SpecialCells(xlCellTypeBlanks).Row
Это также сработало, но было ниже ошибки при закрытии файла: «Невозможно получить свойство SpecialCells класса Range»
Любые идеи, как это сделать?
С уважением,
Brian
какой файл вы закрываете? – user3598756
для каждого цикла работает отлично. Вам нужно заменить 'sheet1' и' sheet2' рабочими листами («Sheet1») и рабочими листами («Sheet2») или определить их в начале. –
Ошибка при закрытии файла excel с этим кодом. Теперь я изменил код с листа1 на Рабочий лист («Лист1»), но у меня все еще такая же ошибка, когда документ близок. Исправлен исходный код. Ошибка: «Объектная переменная или с переменной блока не установлена» – Brian