VBA: подсчет количества столбцов в пределах диапазона до тех пор, пока не встретится указанное значение

То, что я хотел бы достичь через VBA, – подсчитать количество столбцов в определенном диапазоне, но таким образом, чтобы подсчет останавливался, как только указанное значение ячейки встречается. Кроме того, я хочу присвоить значение переменной, которую буду использовать позже для вычислений в суб, который я написал.

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

Я решил, что одним из способов сделать это будет определение диапазона, начиная с (3,3), так как эта исходная точка фиксирована и заканчивается словами (3,20), поскольку я не буду использовать больше 12 месяцев максимум , а затем подсчитайте количество непустых ячеек, пока не появится ячейка, содержащая текст «Grand Total». Кстати, есть данные в ячейках рядом с столбцом «Великий итог», а также значения 17/01, 17/02, …, поэтому я подумал, что лучше остановиться один раз «Grand Total» достигается вместо того, чтобы использовать какой-то подход countif. Это вообще возможно? Любая помощь будет оценена!

http://img.msexcelonline.com/excel/pzBpb.png

Все возможно с VBA. Это подсчитывает ячейки в строке 2, начиная с Col B справа до достижения «Grand Total». Он возвращает число месяцев по вашему желанию.

Function CountMonth() As Integer Dim LastCol As Long Dim sht As Worksheet Dim Counter As Integer Set sht = Worksheets("Sheet1") LastCol = sht.Cells(3, Columns.Count).End(xlToLeft).Column For i = 2 To LastCol If sht.Cells(3, i).Value <> "Grand Total" Then Counter = Counter + 1 Else Exit For End If Next i CountMonth = Counter End Function 
Interesting Posts

Как прочитать конкретные данные из Excel и записать их в другой столбец того же листа. Использование asp.net c #

Выполнение VBAscript с Python

Не удалось загрузить файл или сборку «Microsoft.Office.Interop.Excel, Version = 14.0.0.0

Предотвращение сбоя приложения Excel в результате сбоя блокировки файла

Для каждой ячейки в столбце найдите остальную часть столбца для дубликата

Excel.Range.Find всегда возвращает null

Самый эффективный способ добавления форматирования Excel – VBA

Ошибка при импорте файла excel в SQL Server

Записанный макрос не работает на объекте диаграммы

AutoFilter – узнать, свободен ли второй ряд видимых ячеек

Обратный транспонирование un-concatenate строк в столбцы

Удаление рабочих листов Excel, если не в массиве

Как вставить скопированный диапазон, который содержит прерывистые строки в другие места?

Crystal Reports – заголовок группы с деталями строки

Значение критерия автоматического фильтра Excel задано неправильно?

Давайте будем гением компьютера.