Новое на сайте со слабыми навыками VBA. Надеюсь, я смогу найти какую-то помощь, с которой я боролся в течение нескольких дней. Я нашел много примеров, которые близки, и, похоже, не могут жениться на них вместе. Я использую Excel 2007. У меня есть «Сводная_реестра» WB, а также несколько других книг, названных сотрудником (например, «Jim.xls», «bob.xls» и т. Д.). Каждая из рабочих книг имеет именованные диапазоны «шапки», полученные из листа «Задачи». Этот именованный диапазон в каждом сотруднике wb имеет одинаковую ширину (количество столбцов), но может варьироваться по высоте (количество строк), а некоторые из строк могут быть пустыми. Попытка настроить макрос в «Summary_Reports» wb, который откроет каждого из сотрудников wb, скопирует «колпачки» именованного диапазона и вставляет/вставляет только строки этого диапазона, содержащие данные в первом столбце, в лист «Отчет» в разделе «Summary_Reports» wb. Я предположил, что самый простой метод вставки будет состоять только в том, чтобы выбрать ячейку наверху и всегда вставлять туда эти строки, чтобы каждый сотрудник просто вставил над предыдущим, начиная с того же места. Таким образом, нет счета или поиска последней заполненной строки на листе. Сначала я попытался открыть «Jim.xls» и скопировать названный диапазон непосредственно из книги, но имел небольшой успех и много проблем с синтаксисом. Поэтому я закончил с приведенным ниже кодом, который вытаскивает лист сотрудников в «Summery_Reports», а затем копирует именованный диапазон из себя, а не другой wb. Вероятно, это приведет к удалению этих листов в конце.Excel VBA, чтобы вытащить Non-Null строк из других книг с именем range
То, что я начал с того, что происходит ниже, но подтверждение данных, которое я знаю, неверно. Исправьте меня, если я ошибаюсь, но он проверяет только верхнюю левую ячейку «шапки»; если есть содержимое, оно вставляет все «шапки», и если эта единственная ячейка пуста, она ничего не вставляет. Как исправить проверку, чтобы проверить первый столбец каждой строки, а также как мне заставить его просто дать мне строки с данными?
Кроме того, я знаю, что есть лучший способ получить данные о «шапках» непосредственно от каждого сотрудника wb, не импортируя сначала первую страницу. Если это можно сделать легко, я был бы очень заинтересован в любых советах в этом отношении.
Если вы достаточно любезны, чтобы помочь мне, пожалуйста, оставьте это как можно больше, поскольку мне действительно интересно узнать, что делает код, а не просто копировать и вставлять. Заранее спасибо.
Sub Import_Sheets()
Application.Workbooks.Open ("jim.xls")
Workbooks("jim.xls").Activate
Sheets("Tasks").Copy After:=Workbooks("Summary_Report.xlsm").Sheets("Report")
Application.Workbooks("Jim.xls").Close
'Go to newly copied sheet and name it.
ActiveSheet.Name = "jim"
'Copy the "caps" named range.
With Range("Caps")
If .Cells(1, 1).Value = "" Then
Else
Range("Caps").Select
Selection.Copy
Sheets("Report").Select
Range("B2").Select
Selection.Insert Shift:=xlDown
End If
End With
End Sub
tigeravatar ... Спасибо за очень подробную информацию ... Я надеюсь, что количество времени вы потратили не был почти столько, сколько он появляется. Я некоторое время боролся с твоим ответом. Первоначально это работало, но я не получал результатов и думал, что ошибка связана с моими данными. Я потратил много времени, пытаясь очень близко понять весь код, и для хорошей его части, я понял. После много испытаний и игр вокруг, я думаю, проблема в моей ошибке, потому что я не упоминал, что диапазон содержит объединенные ячейки и комментарии. Он работает с прямым диапазоном. Не сложно. – user2708252
Вообще говоря, слитые клетки всегда следует избегать. Если для вас слишком поздно, чтобы у вас были не объединенные ячейки, мне нужно было бы увидеть образец файла, чтобы адаптировать макрос к вашим потребностям. К сожалению, на самом деле не существует решения «одного размера подходит всем», когда речь заходит о слитых ячейках (и по одной из многих причин их следует избегать). – tigeravatar
Я бы с удовольствием загрузил копию исходного файла для просмотра или даже просмотра в формате jpg, но я ничего не вижу в разделе справки об этом или о том, как отправить вам прямо. – user2708252