#excel #vba
#excel #vba
Вопрос:
У меня есть данные за тот же месяц в нескольких столбцах в непрерывном диапазоне.
Каждый диапазон месяцев разделяется пустым столбцом.
Мне нужен макрос, который находит следующую пустую ячейку в начальной ячейке столбца B10 и автоматически суммирует столбцы, предшествующие пустой ячейке.
Я хочу, чтобы автосумма в выделенных столбцах выделялась желтым цветом (должен быть цикл).
Я начал писать код, но застрял:
Sub sum()
ActiveSheet.Range("b10").Select
Selection.Columns.End(xlToRight).Offset(0, 1).Select
ActiveCell.Value = "=Sum(columns.end (xltoleft)"
End Sub
Большое спасибо
София
Ответ №1:
Переменные
- x: отслеживает текущую строку
- y: первый столбец в диапазоне, подлежащий суммированию
- y1: последний столбец в диапазоне, подлежащий суммированию
Sub AddColumnSums()
Dim x As Long, y As Long, y1 As Long
For x = 10 To Range("A" amp; Rows.Count).End(xlUp).Row
If Cells(x, 1).Value <> "" Then
y = 2 ' Initialize the start column
Do
' xlToRight brings you to the last cell in a continous cell block
y1 = Cells(x, y).End(xlToRight).Column
' The formula is assigned the first cell after continous cell block
Cells(x, y1 1).Formula = "=Sum(" amp; Range(Cells(x, y), Cells(x, y1)).Address amp; ")"
'The starting column is set to the first cell after the formula
y = y1 2
' If there is no more data to the right of the starting column
' xlToRight will reference the last cell in the row and
' the column loop will eixt
Loop Until Cells(x, y).End(xlToRight).Column = Columns.Count
End If
'Increments to the next row
Next
End Sub
Комментарии:
1. Супер!! Спасибо. Я новичок в VBA, поэтому не могли бы вы объяснить немного больше, чтобы я мог настроить это, если потребуется
2. Большое спасибо, Томас. Еще пара настроек. Как я могу изменить формулу на sumif, чтобы она суммировалась на основе заголовка столбца «Январь», «Февраль»…….. Есть ли способ объявить их заранее, а формула подбирает их и суммирует их по отдельности. Также могу ли я поместить заголовок столбца в итоговый столбец за каждый месяц с указанием «Общий итог за январь», «Общий итог за февраль»
3. Извините, что я пропустил ваш комментарий от 1 октября. Вы хотите создать сводную таблицу с фруктами в столбце A и ежемесячными метками, проходящими через столбцы от B до M? В любом случае вам следует опубликовать новый вопрос со скриншотом вашей настройки с тем, что вы пробовали, и, возможно, скриншотом желаемого результата. Завтра у меня выходной, поэтому я уверен, что увижу это. Но если вы свяжете меня с новым вопросом, я отвечу.