Excel VBA, если "x", затем выбрать строки и вставить на другой лист - PullRequest
0 голосов
/ 28 июля 2010

Я застрял, пытаясь разработать довольно простую бухгалтерскую таблицу для рабочего проекта. Я не уверен, как добавлять вложения, поэтому постараюсь объяснить как можно лучше.

Каждый день я вручную вводю данные в таблицу с несколькими столбцами, у меня есть несколько примеров заголовков столбцов: Tax Invoice No., Customer, Description и Date. Они варьируются от ячеек A3 до Y3, а таблица охватывает диапазон A3:Y1135.

Мне нужно создать отчет на первой странице, чтобы другие могли легко прочитать данные, но который также позволяет мне заполнить: либо Current Month Results, либо Previous Month Results, либо Year to date results, в зависимости от того, что я выберу. Я знаю, что есть много способов сделать это вручную, но я надеюсь получить некоторые мнения от людей, намного более продвинутых в этом, чем я! Я думаю, что кнопка макроса или раскрывающийся список для создания отчетов могут работать, но я застрял.

У кого-нибудь есть идеи?

Ответы [ 3 ]

1 голос
/ 28 июля 2010

Нет необходимости в VBA. Используйте сводную таблицу (скрыть лист) для объединения данных, и, если вам требуется дополнительная настройка, используйте функцию GetPivotData для извлечения точных полей ... ссылки на внешние ячейки в функции GetPivotData позволят зрителю фильтровать ... Можно использовать что-то вроде выпадающий список, список или даже проверка данных для выбора ...

0 голосов
/ 31 мая 2013
 Sheets("Output").Select
Range("A2").Select
Name2 = ActiveCell.Value
Do While Name2 <> ""
Sheets("Master Table").Select
Range("A2").Select
name1 = ActiveCell.Value
Do While name1 <> ""
 If name1 = Name2 Then
      ActiveCell.Offset(0, 1).Select
      Range(Selection, Selection.End(xlToRight)).Copy
      Sheets("Output").Select
      ActiveCell.Offset(0, 1).Select
       ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
      'ActiveSheet.paste
      Application.CutCopyMode = False
      Range(Selection, Selection.End(xlToLeft)).Select
      'ActiveCell.Offset(1, 0).Select
      name1 = ""
  Else
    Sheets("Master Table").Select
    ActiveCell.Offset(1, 0).Select
    name1 = ActiveCell.Value

End If
Loop
Sheets("Output").Select
 ActiveCell.Offset(1, 0).Select
    Name2 = ActiveCell.Value
Loop
0 голосов
/ 28 июля 2010

Я бы сказал, что вы можете сделать это с помощью стандартных формул Excel, и вам не придется беспокоиться о VBA. Без более подробной информации трудно дать точный ответ, но я бы пошел по пути выяснения того, за какие периоды времени вы хотите отчитываться, а затем с помощью функции SUMIF или SUMPRODUCT, если вы используете несколько критериев для получения сводной страницы. Если вы хотите искать вейлы вместо того, чтобы добавлять диапазоны вместе, взгляните на VLOOKUP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...