Я пишу программу, которая в настоящее время, когда пользователь нажимает «ОК», сохраняет текущий файл, копирует определенные значения в файл; затем вставляет значения в другой файл. Затем оба файла закрываются. Моя проблема заключается в том, что он дает мне ошибку:Ошибка времени выполнения VBA Excel VBA 1004 «Определенная пользователем или объектная ошибка»
Run Time Error: 'Application-Defined or Object Defined Error'
Он подчеркивает эту строку:
ThisWorkbook.Worksheets("data").Range("C31", Range("C106").End (xlToRight)).Copy
Я отделенный эту линию и один сразу после того, чтобы проверить его в покое, и он работал, как я хотел , Я тестировал остальную часть программы без этих двух строк, и она работала так, как я ожидал. Я попытался ограничить его просто копированием одной ячейки, и это сработало. Я убедился, что имя листа было правильным. я попытался просто скопировать одну строку:
Range("C31", range("C31").End(xlToRight))
он еще не работал, и я наткнулся на то же сообщение об ошибке. Я хочу сказать, что я ссылался на что-то неправильно, но я этого не вижу. Любой ответ вообще был бы полезен, спасибо.
P.S. Прошу прощения за избыточность кода, я не использую «Dim» столько, сколько должен.
Sub Button425_Click()
Dim FName As String
Dim FPath As String
Dim yourmsg As String
Dim testmsg As String
yourmsg = "Are you sure that you want to save and exit?"
testmsg = MsgBox(yourmsg, vbOKCancel + vbExclamation)
FPath = "I:\a\d\f\daily log recycle\"
FName = Sheets("Sheet1").Range("C3").Text
If testmsg = 1 Then
ThisWorkbook.SaveAs filename:=FPath & "\" & FName
Workbooks.Open ("I:\a\d\f\new daily log 1.xlsm")
ThisWorkbook.Worksheets("data").Range("C31", Range("C31").End(xlToRight)).Copy
Workbooks("new daily log 1.xlsm").Worksheets("data").Range("D31").PasteSpecial xlPasteValues
ThisWorkbook.Worksheets("sheet1").Range("E45").Copy
Workbooks("new daily log 1.xlsm").Worksheets("sheet1").Range("E44").PasteSpecial
Workbooks("new daily log 1.xlsm").Worksheets("sheet1").Range("E45").ClearContents
Workbooks("new daily log 1.xlsm").Save
Workbooks("new daily log 1.xlsm").Close
ThisWorkbook.Saved = True
Application.Quit
Else 'do nothing
End If
End Sub