Код не работает как «Add-In или Personal XLSB»

Ниже код работает нормально и делает то, что я хочу сделать. Но когда я использую его как Add-In для работы во всех других книгах, он говорит, что subscript out of range .

Там может быть путаница, связанная с объектами, или надстройка путается, какая книга должна ссылаться.

Я новичок в vba и прошу всех вас помочь.

  Sub mac_3() Dim xlsname As String Dim d As VbMsgBoxResult: d = MsgBox("Would you like to add record?" & vbNewLine & vbNewLine & "(Esc/Cancel to add something.)", vbYesNoCancel + vbQuestion, "Details!") If d = vbNo Then Sheets("MPSA").Range("a13").Value = "Record is not available." Sheets("MPSA").Range("a13").Font.Bold = True ActiveWorkbook.Save GoTo savefile Exit Sub End If If d = vbCancel Then Dim myValue As Variant myValue = Application.InputBox("Non-Transactional number!", "Please paste number[separate with comma ,]:") If myValue = False Then Exit Sub Else Sheets("MPSA").Range("a13").Value = "Dataot available for : " & myValue Sheets("MPSA").Range("a13").Font.Bold = True ActiveWorkbook.Save GoTo savefile Exit Sub End If End If On Error GoTo Cleanup Application.DisplayAlerts = False: Application.EnableEvents = False: Application.ScreenUpdating = False Sheets("MPSA").Range("a14:ac14").Value = Array( _ "ACCOUNT NAME", " ACCOUNT NUMBER", "AGE", "ENTITY NAME", "GROUP", _ "ITEM NUMBER", "ITEM NAME", "COMPONENT", "QUANTITY", "SUBSCRIPTIONS", _ "QUANTITY", "QUANTITY", "NUMBER", "ITEM NAME", _ "PART NUMBER", "PART NAME", "EDITION", "TYPE", "VERSION", "USAGE", _ "LIMIT", "NAME", "TART DATE", "END DATE", "ASSET STATUS", _ "CATEGORY", "ACCOUNT TYPE", "METHOD", "CENTER") Sheets("MPSA").Range("a14:ac14").Font.Name = "Calibri" Sheets("MPSA").Range("a14:ac14").Interior.ColorIndex = 24 Sheets("MPSA").Range("a14:ac14").Font.Bold = True Sheets("MPSA").Range("a14:ac14").Borders.LineStyle = xlContinuous Sheets("MPSA").Columns.AutoFit Dim Target_Path: Target_Path = Application.GetOpenFilename Do While Target_Path <> False ' <-- loop until user cancels Dim Target_Workbook As Workbook: Set Target_Workbook = Workbooks.Open(Target_Path) Target_Workbook.Sheets(1).Cells.WrapText = True Target_Workbook.Sheets(1).Cells.WrapText = False Target_Workbook.Sheets(1).Range("A1").CurrentRegion.Offset(1).Copy _ ThisWorkbook.Sheets("MPSA").Range("a1000000").End(xlUp).Offset(1) Target_Workbook.Close False ActiveWorkbook.Save Dim e As VbMsgBoxResult: e = MsgBox("Another Record?", vbYesNo + vbQuestion, "Next details!") If e = vbNo Then ThisWorkbook.Save GoTo savefile Exit Sub End If 'If e = vbYes Then Target_Path = Application.GetOpenFilename Loop GoTo savefile savefile: Application.DisplayAlerts = False xlsname = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5)ActiveWorkbook.SaveAs Filename:="C:\Users\" & Environ$("username") & "\Desktop\New Folder\" & xlsname & ".xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False Cleanup: If Err.Number <> 0 Then MsgBox "Something went wrong: " & vbCrLf & Err.Description Application.DisplayAlerts = True: Application.EnableEvents = True: Application.ScreenUpdating = True End Sub 

Сейчас проблема решена. Как было предложено @Tom, надстройка была смущена тем, какой рабочий лист вставить значения в.

Ну, я определил другую переменную, используя Dim Source_Workbook as Workbook Set Source_Workbook as ActiveWorkbook

Всем спасибо 🙂

Interesting Posts

Добавить текст в столбец Значение в сводной таблице

Проверка данных завершается неудачно, когда копирование данных в Excel происходит через apache poi

как динамически создавать файлы excel с помощью ssis

Получить адрес с Google для Excel

Ошибка ввода переменной внутри функции excel VBA

Показать все ячейки (включая пустые столбцы и строки) листа

Excel. Как заблокировать ячейку без использования макросов, если это возможно.

Использование SXSSF (APACHE POI) и добавление комментария не генерируют правильный файл excel

Сводная таблица из столбца в строку в excel или R

Массив – Подкласс вне диапазона в VBA

«BindingSource не может быть его собственным DataSource»

Скопированные диаграммы не отображаются в Excel Online

VBA – Автоматическая загрузка выполняется медленнее, чем вручную

Как сделать xml-файл в c # для использования с .iqy, который импортирует как datatable

SQL-запрос в Excel PowerPivot

Давайте будем гением компьютера.