Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Макрос для подсчета суммы ячеек по условию цвета
 
Спасибо Alice и Hugo все очень круто работает!!
Макрос для подсчета суммы ячеек по условию цвета
 
Доброго времени суток! Помогите составить макрос, который бы шел по строкам вниз проверяя цвет ячейки, и если ячейка бесцветная, то нужно сложить все, что идет под ней до следующей бесцветной ячейки, а если бесцветные ячейки подряд, то вэлью оставлял прежним.
Я предполагаю должно работать с "If ActiveCell.Interior.ColorIndex = xlNone Then" но не знаю как зациклить дальше.
Убрать лишнее в макросе
 
Цитата
написал:
Цитата
написал:
2)можно ли сделать цикл из повторяющихся инсертов?
Вариант без циклов.
Код
    [URL=#]?[/URL]       1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68      Sub   vstavka()             Dim   SourceWorkbook   As   Workbook          Dim   SourceWorksheet   As   Worksheet          Dim   DestinationWorksheet   As   Worksheet          Dim   FileDialog   As   FileDialog          Dim   SelectedFile   As   String          Dim   tbl   As   ListObject          Dim   newRow   As   ListRow          Dim   iLastRow   As   Long                  Set   tbl = ActiveSheet.ListObjects(  "Table1"  )          ' Добавить новую строку в таблицу          Set   newRow = tbl.ListRows.Add          With   Application              .ScreenUpdating =   False              .EnableEvents =   False              End   With                   ' Открываем диалоговое окно для выбора файла          Set   FileDialog = Application.FileDialog(msoFileDialogFilePicker)          With   FileDialog              .AllowMultiSelect =   False              .Title =   "Выберите файл для копирования данных"              .Filters.Clear              .Filters.Add   "Excel файлы"  ,   "*.xlsx; *.xlsm; *.xls"              If   .Show =   True   Then                  SelectedFile = .SelectedItems(1)              Else                  Exit   Sub              End   If          End   With          ' Открываем выбранный файл          Set   SourceWorkbook = Workbooks.Open(SelectedFile,   ReadOnly  :=  True  )          ' Указываем листы для копирования и вставки данных          Set   SourceWorksheet = SourceWorkbook.Sheets(  "TDSheet"  )          ' Копируем данные из выбранной книги в текущую книгу          Dim   arr   As   Variant          ReDim   arr(1   To   1, 1   To   11)          With   SourceWorksheet              arr(1, 1) = .Range(  "A9"  ).Value              arr(1, 2) = .Range(  "B17"  ).Value              arr(1, 3) = .Range(  "N17"  ).Value              arr(1, 4) = .Range(  "Z17"  ).Value              arr(1, 5) = .Range(  "C23"  ).Value              arr(1, 6) = .Range(  "B85"  ).Value              arr(1, 7) = .Range(  "V85"  ).Value              arr(1, 8) = .Range(  "B86"  ).Value              arr(1, 9) = .Range(  "J94"  ).Value              arr(1, 10) = .Range(  "P129"  ).Value              arr(1, 11) = .Range(  "G129"  ).Value          End   With                   With   newRow.Range.Cells(1).Resize(UBound(arr, 1), UBound(arr, 2))              .Value = arr              .Font.Bold =   False          End   With                      With   Application              .ScreenUpdating =   True              .EnableEvents =   True              .Calculation = ac              End   With                                   ' Закрываем и сохраняем выбранную книгу          SourceWorkbook.Close SaveChanges:=  False    End   Sub   
 
Спасибо большое! Все работает и не сбивает данные последних ячеек!  
Убрать лишнее в макросе
 
Доброго времени суток! Подскажите,  вот есть рабочий код для вставки из конкретной книги конкретные ячейки (книги на выбор, ячейки везде статичны). Первое вхождение в строке происходит через newRow а дальше от последней активной. Как быть с:

1)при выполнении кода, затираются данные последних ячеек в строке, а там формулы, от чего не происходит их перерасчет;
2)можно ли сделать цикл из повторяющихся инсертов?
Если будут советы по упрощению кода - прислушаюсь (присмотрюсь) обязательно!
Страницы: 1
Наверх