powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
25 сообщений из 26, страница 1 из 2
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980772
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Экспортирую в Excel перекрёстный запрос. Количество колонок переменное. От 2 до 250. Потом надо пробежаться по всем ячейкам и раскрасить их соответственно содержимому.
Область работы, как известно, задаются крайними точками, и если с определением количества строк проблем нет, то вот задание крайней колонки вызывает трудности. Всё дело в том, что они имеют буквенные обозначения. Может у кого есть подпрограмма, переводящая числа в буквенное обозначение, принятое в Excel?

-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980788
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss
Область работы, как известно, задаются крайними точками, и если с определением количества строк проблем нет, то вот задание крайней колонки вызывает трудности. Всё дело в том, что они имеют буквенные обозначения.

"Область работы" - это что ? Range ?
Так ему можно задавать диапазон ячеек и как строковой и как числовой параметр (через Cells)
Типа такого
Код: vbnet
1.
2.
ws.Range("A1:C3"). ...
ws.Range(ws.Cells(1,1),ws.Cells(3,3)). ...


Вот эти два определения для диапазона - полностью идентичные ...

Или я не понял проблему ? Покажи в коде
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980790
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы правильно поняли
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Set objRegExp0 = CreateObject("VBScript.RegExp")
objRegExp0.Global = False
objRegExp0.IgnoreCase = True  
objRegExp0.Pattern = rst.Fields("TypeDay") 
With XL.ActiveWorkbook
  With .ActiveSheet
      For Each V0 In .Range("B2:CZ31")  
        If objRegExp0.test(V0.Value) Then V0.Interior.Color = rst.Fields("CodColor") 
      Next
  End With
 End With
Set objRegExp0 = Nothing


Насколько я понял Вас, то вместо
Код: vbnet
1.
.Range("B2:CZ31")

можно написать
Код: vbnet
1.
.Range(objExcelList.Cells(2, 2), objExcelList.Cells(40, 250))

Так?
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980793
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss
Так?
да
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980801
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss
Код: vbnet
1.
2.
With XL.ActiveWorkbook
  With .ActiveSheet


очень плохая практика, использовать в коде все ActiveЧтоТоТам
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980806
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не слишком великий специалист по Excel. В основном только выгружаю в него разные данные из Access. А тут потребовалось раскрасить то, что выгрузил. Вот и мучаюсь.

А что лучше применять вместо ActiveЧтоТоТам ?
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980815
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss
А что лучше применять вместо ActiveЧтоТоТам ?

объектные переменные ссылающиеся на нужную книгу/страницу

Код: vbnet
1.
2.
3.
4.
Dim WB as Excel.Workbook, WS as Excel.Worksheet
...
set WB = XL.Workbooks("название книги") ' если книга уже открыта, или Workbooks.Open filename:="путь и имя файла" если не открыта
set WS = WB.Worksheets("название страницы") ' или номер WB.Worksheets(1)
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980892
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss,

кажется кто-то уже говорил вам про морально устаревшую подпись с "кровным рублем" ???
действительно немного раздражает, да и не понятно вы лично за Билла или против него ...
Тем более если учесть, что у многих этот кровный рубль появился благодаря этому самому Биллу, причем очень часто вообще без всяких вложений...
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980948
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.как Вы думаете зачем в Ёкселе есть стиль ссылок R1C1? Пофиг имя
2.чем не устраивает тривиальный CurrentRegion?
Код: vbnet
1.
myCount=Cells(1, 1).CurrentRegion.Columns.Count  'или любая другая ячейка НЕПРЕРЫВНОГО,БЕЗ ОБЪЕДИНЕННЫХ ЯЧЕЕК диапазона
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980959
Joss, объект UsedRange возвращает диапазон задействованных ячеек на листе. Количество задействованных столбцов и строк возвращает UsedRange.Columns.Count и UsedRange.Rows.Count соответственно.
Если раскраска всех ячеек идет по одним правилам, то, возможно, проще применить ко всем ячейкам условное форматирование.
Также можно подумать над тем, чтоб импорт выполнять в заранее подготовленный шаблон методом CopyFromRecordset.
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980961
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Joss,

кажется кто-то уже говорил вам про морально устаревшую подпись с "кровным рублем" ???
...
ну, консерватор я, консерватор... Ну висит эта подпись у меня аж с 2003 года. Ну и что? Ну поменяю её... Не уверен, что новая подпись будет лучше...
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980966
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Excel прошел как-то мимо меня. Максимум, что с меня требовали - это выгрузку в Excel . Ну иногда что-то слегка отформатировать.
Ну не требовали от меня чего-то такого особенного. Большинство задач я решал в Access , а выгружал уже готовые результаты.
Но вот появилось новое начальство и захотело вот такую штуковину.
Так что в Excel я сильно плаваю.
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980969
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
Joss, объект UsedRange возвращает диапазон задействованных ячеек на листе. Количество задействованных столбцов и строк возвращает UsedRange.Columns.Count и UsedRange.Rows.Count соответственно.
Если раскраска всех ячеек идет по одним правилам, то, возможно, проще применить ко всем ячейкам условное форматирование.
Также можно подумать над тем, чтоб импорт выполнять в заранее подготовленный шаблон методом CopyFromRecordset.


Спасибо. попробую (UsedRange.Columns.Count и UsedRange.Rows.Count).
Шаблон не катит. Значения содержимого и правила раскраски должен устанавливать сам пользователь.
смотри тут Цвет в ленточной форме
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39980970
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag , ну поменял я подпись. Не знаю, будет лучше или хуже...
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39981008
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss, CurrentRegion в вашем случае поуниверсальней будет (таблиц же может быть несколько).
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39981225
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss
vmag , ну поменял я подпись. Не знаю, будет лучше или хуже...

У некоторых вообще подписи нет и не было.
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39981311
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39982293
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alecko
Joss, CurrentRegion в вашем случае поуниверсальней будет (таблиц же может быть несколько).
Нет, тут выгружается только одна таблица.
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39982661
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
      
For Each V0 In .Range("B2:CZ31")  
        If objRegExp0.test(V0.Value) Then V0.Interior.Color = rst.Fields("CodColor") 
Next


Плохая вообще в плане производительности идея - поячеечно такие огромные "портянки" размечать на листе.
А условным форматированием (формулками в экселе) разве нельзя обойтись?
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39982709
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldfanate
Код: vbnet
1.
2.
3.
4.
      
For Each V0 In .Range("B2:CZ31")  
        If objRegExp0.test(V0.Value) Then V0.Interior.Color = rst.Fields("CodColor") 
Next


Плохая вообще в плане производительности идея - поячеечно такие огромные "портянки" размечать на листе.
А условным форматированием (формулками в экселе) разве нельзя обойтись?
Сколько условий поддерживает условное форматирование? Точнее, для скольких значений их можно задать? Я не большой знаток Excel, но тут раскрашивать надо по 20 условиям. Может чуть меньше, может чуть больше. Такое условное форматирование потянет?
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39982774
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему нет? Форматирование формулой. Причём можно наверное все 20 условий завернуть на vba в одну пользовательскую формулу рабочего листа, которая только код цвета возвращает например.
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39982838
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldfanate
а почему нет? Форматирование формулой. Причём можно наверное все 20 условий завернуть на vba в одну пользовательскую формулу рабочего листа, которая только код цвета возвращает например.
Странно. А я увидел только 7 цветов длч условного форматирования. Или я не там смотрел?
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39982911
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так там же вродебы неограниченное число правил можно создавать, используя формулу.
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39983020
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldfanate
так там же вродебы неограниченное число правил можно создавать, используя формулу.
не могу сообразить, как это сделать.
...
Рейтинг: 0 / 0
Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
    #39983448
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так несколько правил например применять к одному и тому же диапазону. 1ое красит в 1ый цвет, 2ое во 2ой и т.д.
Тем более, если у вас уже код цвета ячейки расчитан заранее в рекордсете-источнике
Код: vbnet
1.
Then V0.Interior.Color = rst.Fields("CodColor")



Впринципе можно просто код цвета тогда в допколонку (скрытую) на лист сразу же выгрузить, тем же блочным перемещением данных, и формулы правил условного форматирования по этой колонке сами всё раскрасят в нужные цвета.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Рассчитать номер (буквенное обозначение) крайней колонки при экспорте в Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]