Excel VBA: альтернативы «Application.Объединение» на разных листах?

#excel #vba

#excel #vba

Вопрос:

Ниже приведены два примера кода, который я надеюсь включить в один макрос, но я знаю приложение.Объединение имеет свои пределы. Я попытался настроить все области и тип сделки Idx, но не смог получить правильный синтаксис для диапазонов. Не мог бы кто-нибудь, пожалуйста, взглянуть на это и сообщить мне, как лучше всего сконденсировать это в один макрос? Буду признателен за любую помощь. Спасибо.

 For Each cell In Worksheets("GL").Range("D1:D2000")
    If cell.Value = "Computer Checks" Then
        If MyCount = 1 Then Set NewRange = cell.Offset(0, 1)
        Set NewRange = Application.Union(NewRange, cell.Offset(0, 1))
        MyCount = MyCount   1
    End If
Next cell

For Each cell In Worksheets("BS").Range("D1:D2000")
    If cell.Value = "CHECK PAID" Then
        If MyCount = 1 Then Set NewRange = cell.Offset(0, -3)
        Set NewRange = Application.Union(NewRange, cell.Offset(0, -3))
        MyCount = MyCount   1
    End If
Next cell
  

Комментарии:

1. Можете ли вы объяснить, что вы пытаетесь сделать, не столько код, сколько в более широких терминах? Я полагаю, вы понимаете, что Union это не работает на разных листах, но не совсем ясно, что вы хотите делать с NewRange или MyCount .

2. Если бы объединение на разных листах сработало , то что бы вы делали с этим диапазоном?

3. Привет. Спасибо вам обоим за ответ! Я ищу определенную фразу в ячейке, и если Excel находит ее, я заставляю его вставлять данные из определенных столбцов в этой строке в определенные столбцы сводного листа. Например, если в какой-либо из ячеек столбца D на листе с именем «GL» есть фраза «Компьютерные проверки», я вставляю дату, номер записи в журнале, получателя платежа, номер чека и сумму в другом месте. Другой пример — другая сторона с более или менее той же информацией. Затем я могу использовать формулы для проверки соответствия между наборами данных.

4. Вы хотите вставить данные из таблицы GL в консолидированный лист, затем данные из таблицы BS под данными GL и так далее? Если это так, просто запишите данные после выполнения цикла по листу. В качестве альтернативы вы можете загрузить данные непосредственно в массив, а затем записать массив в консолидированный лист, когда закончите.

5. Они расположены рядом друг с другом, так что я могу «показать работу» и сделать так, чтобы она была легко интерпретирована другими. Моя цель — создать один большой макрос, чтобы им не приходилось запоминать, в каком порядке их выполнять. Я хочу, чтобы коллеги видели, какие данные необходимы для перекрестной проверки, но не обязательно хочу, чтобы они начинали вырезать и вставлять книгу или выполнять ВПР ко всем чертям, потому что это приводит к утечке данных.