Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Ряд ячеек в одной строке кода - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ряд ячеек в одной строке кода (Макросы/Sub)
Ряд ячеек в одной строке кода
Сергей13 Дата: Воскресенье, 07.04.2019, 02:41 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Здравствуйте.

Ребята каким образом ряд ячеек от 1 до 12 вписать в одну строку кода?
[vba]
Код
SalesListRow.Range(1)
SalesListRow.Range(2)
SalesListRow.Range(3)
'и.т.д.
[/vba]
Дыбы изменять шрифт, цвет текста, заливки.


Сообщение отредактировал Сергей13 - Воскресенье, 07.04.2019, 02:45
 
Ответить
СообщениеЗдравствуйте.

Ребята каким образом ряд ячеек от 1 до 12 вписать в одну строку кода?
[vba]
Код
SalesListRow.Range(1)
SalesListRow.Range(2)
SalesListRow.Range(3)
'и.т.д.
[/vba]
Дыбы изменять шрифт, цвет текста, заливки.

Автор - Сергей13
Дата добавления - 07.04.2019 в 02:41
Pelena Дата: Воскресенье, 07.04.2019, 07:45 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
А что такое SalesListRow?
Может, так подойдёт
[vba]
Код
SalesListRow.Cells(1,1).Resize(12)
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
А что такое SalesListRow?
Может, так подойдёт
[vba]
Код
SalesListRow.Cells(1,1).Resize(12)
[/vba]

Автор - Pelena
Дата добавления - 07.04.2019 в 07:45
Сергей13 Дата: Воскресенье, 07.04.2019, 10:43 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Здравствуйте!
Это вот то, что позволяет через ссылки на объявленные переменные сократить написание и обратится к чему-то.
Где-то так понимаю...
[vba]
Код
    Set ShSales = ThisWorkbook.Worksheets("log_book") ‘лист
    Set SalesListObj = ShSales.ListObjects("tabl_logbook") ‘динамическая таблица
    Set SalesListRow = SalesListObj.ListRows.Add ‘строка динам. таблицы
[/vba]
А это то, что позволяет используя обращения, например изменить цвет текста в каждой ячейке строки по отдельности
[vba]
Код
            SalesListRow.Range(1).Font.Color = vbRed
            SalesListRow.Range(2).Font.Color = vbRed
            SalesListRow.Range(3).Font.Color = vbRed
[/vba]
А если учесть то, что цвет меняется на четыре позиции по условию в 12 ячейках строки, то у меня складывается код из 48 строк, отсюда и задался вопрос как это чередование прописать одной строкой.
В данном случае предложенный Вами пример если дописать так, то выдает ошибку
[vba]
Код
SalesListRow.Cells(1, 1).Resize(12).Interior.Pattern = xlNone ‘снять заливку
SalesListRow.Cells(1, 1).Resize(12).Font.Color = vbRed ‘установить цвет текста красный
[/vba]


Сообщение отредактировал Сергей13 - Воскресенье, 07.04.2019, 10:49
 
Ответить
СообщениеPelena, Здравствуйте!
Это вот то, что позволяет через ссылки на объявленные переменные сократить написание и обратится к чему-то.
Где-то так понимаю...
[vba]
Код
    Set ShSales = ThisWorkbook.Worksheets("log_book") ‘лист
    Set SalesListObj = ShSales.ListObjects("tabl_logbook") ‘динамическая таблица
    Set SalesListRow = SalesListObj.ListRows.Add ‘строка динам. таблицы
[/vba]
А это то, что позволяет используя обращения, например изменить цвет текста в каждой ячейке строки по отдельности
[vba]
Код
            SalesListRow.Range(1).Font.Color = vbRed
            SalesListRow.Range(2).Font.Color = vbRed
            SalesListRow.Range(3).Font.Color = vbRed
[/vba]
А если учесть то, что цвет меняется на четыре позиции по условию в 12 ячейках строки, то у меня складывается код из 48 строк, отсюда и задался вопрос как это чередование прописать одной строкой.
В данном случае предложенный Вами пример если дописать так, то выдает ошибку
[vba]
Код
SalesListRow.Cells(1, 1).Resize(12).Interior.Pattern = xlNone ‘снять заливку
SalesListRow.Cells(1, 1).Resize(12).Font.Color = vbRed ‘установить цвет текста красный
[/vba]

Автор - Сергей13
Дата добавления - 07.04.2019 в 10:43
Pelena Дата: Воскресенье, 07.04.2019, 11:05 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Файл с примером покажете?
У Вас получается, что SalesListRow - это добавленная строка, тогда [vba]
Код
.Resize(,12)
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеФайл с примером покажете?
У Вас получается, что SalesListRow - это добавленная строка, тогда [vba]
Код
.Resize(,12)
[/vba]

Автор - Pelena
Дата добавления - 07.04.2019 в 11:05
Сергей13 Дата: Воскресенье, 07.04.2019, 11:26 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Да, добавление строки с вводом значения
Так
[vba]
Код
SalesListRow.Range(1) = FormLogbook.ComboBox1.Value 'Добавление данных в добавленную строку
[/vba]
А затем формат ячейки например цвет
[vba]
Код
SalesListRow.Range(1).Font.Color = vbRed 'установить цвет текста красный
[/vba]
Срабатывает на установку цвета последней вставленной строки
Или это неправильно?

ps
С примером сложновато, надо подготавливать, потому там столько моментов завязано...


Сообщение отредактировал Сергей13 - Воскресенье, 07.04.2019, 11:27
 
Ответить
СообщениеPelena, Да, добавление строки с вводом значения
Так
[vba]
Код
SalesListRow.Range(1) = FormLogbook.ComboBox1.Value 'Добавление данных в добавленную строку
[/vba]
А затем формат ячейки например цвет
[vba]
Код
SalesListRow.Range(1).Font.Color = vbRed 'установить цвет текста красный
[/vba]
Срабатывает на установку цвета последней вставленной строки
Или это неправильно?

ps
С примером сложновато, надо подготавливать, потому там столько моментов завязано...

Автор - Сергей13
Дата добавления - 07.04.2019 в 11:26
Pelena Дата: Воскресенье, 07.04.2019, 11:30 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
А если просто
[vba]
Код
SalesListRow.Range.Font.Color = vbRed
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеА если просто
[vba]
Код
SalesListRow.Range.Font.Color = vbRed
[/vba]

Автор - Pelena
Дата добавления - 07.04.2019 в 11:30
Сергей13 Дата: Воскресенье, 07.04.2019, 11:37 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena,
Окрашивает, но строка перескакивает верх на несколько позиций
 
Ответить
СообщениеPelena,
Окрашивает, но строка перескакивает верх на несколько позиций

Автор - Сергей13
Дата добавления - 07.04.2019 в 11:37
Сергей13 Дата: Воскресенье, 07.04.2019, 11:39 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Момент тут у меня сбой, потестирую сообщу
 
Ответить
СообщениеPelena, Момент тут у меня сбой, потестирую сообщу

Автор - Сергей13
Дата добавления - 07.04.2019 в 11:39
Сергей13 Дата: Воскресенье, 07.04.2019, 12:08 | Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
А если просто
SalesListRow.Range.Font.Color = vbRed

Елена, срабатывает, как и положено на последнюю строку изначально вставленных данных, не ясно то, как определяется последняя строка для формата данных если нет координат для последней строки, кроме range…


Сообщение отредактировал Сергей13 - Воскресенье, 07.04.2019, 12:17
 
Ответить
Сообщение
А если просто
SalesListRow.Range.Font.Color = vbRed

Елена, срабатывает, как и положено на последнюю строку изначально вставленных данных, не ясно то, как определяется последняя строка для формата данных если нет координат для последней строки, кроме range…

Автор - Сергей13
Дата добавления - 07.04.2019 в 12:08
Сергей13 Дата: Воскресенье, 07.04.2019, 15:18 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Я уже неделю канителюсь с этим, вписывая по полста строк кода с условиями для одной строки, при этом понимая, что это некий штопор…
Благодарю Вас, Вы вывели меня из штопора.
 
Ответить
СообщениеPelena, Я уже неделю канителюсь с этим, вписывая по полста строк кода с условиями для одной строки, при этом понимая, что это некий штопор…
Благодарю Вас, Вы вывели меня из штопора.

Автор - Сергей13
Дата добавления - 07.04.2019 в 15:18
Pelena Дата: Воскресенье, 07.04.2019, 16:08 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Насколько я помню, метод .Add без указания номера строки добавляет строку именно в конец таблицы, поэтому, обращаясь к переменной SalesListRow, Вы обращаетесь к последней строке


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНасколько я помню, метод .Add без указания номера строки добавляет строку именно в конец таблицы, поэтому, обращаясь к переменной SalesListRow, Вы обращаетесь к последней строке

Автор - Pelena
Дата добавления - 07.04.2019 в 16:08
Сергей13 Дата: Воскресенье, 07.04.2019, 17:24 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Да идет добавление строки с последующей вставкой данных в эту добавленную строку.
Но если он добавляет строку, то по идеи при заливке или изменения цвета шрифта в добавленной строке, используя туже переменную уже для формата строки, должно произойти новое добавление строки… Или нет?
 
Ответить
СообщениеPelena, Да идет добавление строки с последующей вставкой данных в эту добавленную строку.
Но если он добавляет строку, то по идеи при заливке или изменения цвета шрифта в добавленной строке, используя туже переменную уже для формата строки, должно произойти новое добавление строки… Или нет?

Автор - Сергей13
Дата добавления - 07.04.2019 в 17:24
Pelena Дата: Воскресенье, 07.04.2019, 17:47 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация: 4420 ±
Замечаний: ±

Excel 365 & Mac Excel
Нет, строку добавляет метод .Add
[vba]
Код
Set SalesListRow = SalesListObj.ListRows.Add
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеНет, строку добавляет метод .Add
[vba]
Код
Set SalesListRow = SalesListObj.ListRows.Add
[/vba]

Автор - Pelena
Дата добавления - 07.04.2019 в 17:47
Сергей13 Дата: Воскресенье, 07.04.2019, 17:56 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 344
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Pelena, Запутался, ну да ладно.
Спасибо Вам.
 
Ответить
СообщениеPelena, Запутался, ну да ладно.
Спасибо Вам.

Автор - Сергей13
Дата добавления - 07.04.2019 в 17:56
Gustav Дата: Понедельник, 08.04.2019, 11:50 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2744
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Цитата Сергей13, 07.04.2019 в 02:41, в сообщении № 1 ()
каким образом ряд ячеек от 1 до 12 вписать в одну строку кода?

Например, так:
[vba]
Код
SalesListObj.ListRows.Add.Range.Value = Array("aaa", "2", "bbb3",..., 12)
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение
Цитата Сергей13, 07.04.2019 в 02:41, в сообщении № 1 ()
каким образом ряд ячеек от 1 до 12 вписать в одну строку кода?

Например, так:
[vba]
Код
SalesListObj.ListRows.Add.Range.Value = Array("aaa", "2", "bbb3",..., 12)
[/vba]

Автор - Gustav
Дата добавления - 08.04.2019 в 11:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Ряд ячеек в одной строке кода (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!