У меня проблема с VBA с Excel. Поэтому у меня есть эта книга «Book Tool - Обновлено февраль 2017.xlsb», которую я сейчас обновляю и буду распространять около 10 членов команды, чтобы отслеживать их работу. То, что я пытаюсь сделать, - это данные поиска из внешнего документа «Данные команды», поместите это в колонку DE файла «Book Tool - Обновленный февраль 2017.xlsb». Поэтому я написал код ниже, где, когда член команды нажимает кнопку, он открывает файл поиска, ищет данные в столбце A листа «SICcode» этого внешнего файла, соответствует ему в столбце B «Книги» Лист "файла« Инструмент книги »и возвращает значение в столбце D файла поиска. Он работает для длины «Книжного листа», закрывает внешний файл, и вы получаете всплывающее окно, которое добавляет данные.VBA Lookup in Another Workbook
Теперь, когда я сам сделал этот код, он отлично работает. Автоматически открывал внешний документ, выполнял поиск, возвращал правильное значение, закрывал внешний документ, всплывал. Поэтому я отправил файл с макросом моему менеджеру, чтобы поиграть, прежде чем отдавать его остальной части моей команды, но макрос не работает. Когда макрос запускается, открывается внешний документ, кажется, что он просматривает запросы, закрывает внешний файл, и появляется всплывающее окно, но в столбце DE нет значения, и там нет формулы поиска. Мой менеджер не изменил название документа Tool, он не возился с каким-либо кодом. Он отправил мне письмо по электронной почте, и с этой копией формула не работает, но я проверил ее с помощью моей основной формулы копирования, и даже если это то же самое, макрос не будет заполнять данные.
Мы должны хранить внешние данные в отдельном файле, потому что в противном случае инструмент с данными поиска превышает 2 МБ и навсегда бежит или запускается.
Есть ли что-то в том, что вы отправляете по электронной почте инструмент туда и обратно, который испортится с файлом, или есть какая-то проблема форматирования, которую мне нужно изучить, что заставляет ее не работать? С моей главной копией на моем компьютере код всегда работает независимо от того, работаю ли я на виртуальном рабочем столе, в другой папке.
У меня все в порядке с vba, я не знаю всех технических аспектов этого процесса, поэтому, возможно, я упускаю из виду некоторые недостатки в том, как я это настроил или ограничения Excel. Любые рекомендации или помощь будут оценены.
Sub AddData()
On Error Resume Next
'Open External Data Source
Workbooks.Open Filename:= _
"W:\USB\Reporting\Book Tool\Attachments\Team Data.xls"
'View sheet where data will go into
Windows("Book Tool - Updated Feb. 2017.xlsb").Activate
'Gets last row of Tool sheet
Sheets("Book").Select
lastrow = Cells(Rows.Count, "B").End(xlUp).Row
'Lookup in External File
Sheets("Book").Select
Range("DE2:DE" & lastrow).FormulaR1C1 = "=VLOOKUP(RC[-108],'[Team Data.xls]SICcode'!C[-109]:C[-104],5,FALSE)"
'Close External Data File
Windows("Team Data.xls").Activate
ThisWorkbook.Saved = True
Application.DisplayAlerts = False
ActiveWindow.Close
MsgBox "Data Add Done"
End Sub
Избавьтесь от инструкции 'On Error Resume Next' и отлаживайте код, чтобы узнать, где находятся ошибки. Наконец, отправьте макрос своему начальнику только после того, как вы сделали это заявление бесполезным – user3598756
у вас слишком много неквалифицированных объектов, и слишком много «Активировать» и «Выбрать» –