1

Предыстория: у меня есть лист, который извлекает данные из базы данных для создания меток товаров (с помощью формул поиска соответствия индекса). На листе есть записанный мной макрос, который отфильтровывает пустые строки и автоматически подгоняет оставшиеся строки. (Я не очень знаком с VBA, поэтому прошу прощения за мое невежество)

Рабочий лист: данные заполняются в два столбца (B и C) и 25 строк. Мне нужна помощь в создании макроса, который будет выполнять все эти задачи после ввода номера продукта; отфильтруйте пустые строки и автоматически установите оставшиеся строки, измерьте высоту строк для каждой из оставшихся строк и получите суммарную сумму для появления высот строк (предпочтительно в ячейке B2). (т.е. "Высота строк: 64")

Любая помощь приветствуется и спасибо заранее!

2 ответа2

1

С отфильтрованными данными, такими как:

Код как:

Sub TotalHeight()
   Dim HowTall As Long
   Dim Kount As Long
   HowTall = 0
   Kount = 0

   For i = 2 To 25
      Set r = Cells(i, "A").EntireRow
      If Not r.Hidden Then
         HowTall = HowTall + r.RowHeight
         Kount = Kount + 1
      End If
   Next i

   MsgBox Kount & vbCrLf & HowTall
End Sub

Расскажет вам количество видимых строк и общую высоту этих строк.

НОТА:

Единицей высоты является точка, где каждая точка составляет 0,013888889 дюймов (при увеличении 100%).Это предполагает, что вы не используете jumbotron в качестве монитора.

1

Чтобы получить высоту / число в переменной, просто и быстро вставьте в свой модуль:

Public Function getHeight(rng As Range) As Long
  getHeight = rng.Height
End Function

Public Function getCount(rng As Range) As Long
  getCount = rng.SpecialCells(xlCellTypeVisible).Rows.Count
End Function

затем просто вставьте в ячейку, которую вы хотите, вывод =getCount(B4:B25)&" "&getHeight(B2:B25)/96 чтобы получить количество и высоту ... но имейте в виду, что ppi меняется в зависимости от ваших настроек, разрешения и размер монитора (так что вам может потребоваться получить реальное ppi и изменить /96 , но есть множество быстрых способов сделать это ... просто посмотрите здесь или используйте Google)

Для настройки фильтра и авто-высоты просто "макрос записи" является идеальным началом, теперь вам нужно установить фильтр по-разному. Чтобы получить фильтр переменных, просто запишите его при изменении, а затем замените значение фильтра на Range("A1").Value (измените A1 на любую ячейку, которую вы хотите использовать в качестве фильтра)

Если вы все еще сталкиваетесь с проблемами, делая это, просто спросите в StackOverflow (но вам нужно показать код того, что у вас уже есть, или они могут рассердиться):P

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .