![]() |
|
Excel: метод SpecialCells неверно определяет последний столбец. Помогите!!! Ø |
☑ | ||
---|---|---|---|---|
0
ОДНик
06.07.05
✎
08:22
|
Обрабатывая файл
ExcelApp.Cells(1,1).SpecialCells(11).Row - возвращает правильное значение; а ExcelApp.Cells(1,1).SpecialCells(11).Column - возвращает неправильное значение. И, кто знает, подскажите другие коды и их значения (SpecialCells(11)). Спасибо! |
|||
1
Кукуруза
06.07.05
✎
08:41
|
1. Начать запись макроса
2. На листе нажать контрол-вправо 3. Окончить запись макроса 4. Посмотреть кодЪ . Cells(...).End(xlToRight).Select |
|||
2
Палыч
06.07.05
✎
08:41
|
Пример из хелпа:
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate |
|||
3
ОДНик
06.07.05
✎
08:47
|
(1) Реализуется не макрос, а идет чтение данных из Ёкселя.
(2) Это пример я видел, но че-то не пойму, на какой вопрос он отвечает? |
|||
4
Кукуруза
06.07.05
✎
08:48
|
(3) а!! ржунимагу! тормаз, прочитай еще раз (1)
|
|||
5
RomaH
06.07.05
✎
09:00
|
Rows = Ексель.ActiveSheet.UsedRange.Rows.Count;
Columns = Ексель.ActiveSheet.UsedRange.Columns.Count; Сообщить("Количество строк = " + Rows + "; Количество колонок = " + Columns); |
|||
6
Кукуруза
06.07.05
✎
09:01
|
пусть тогда уже афтар выскажеца, что такое последний столбец
|
|||
7
Gloom
06.07.05
✎
09:12
|
Метод SpecialCells не учитывает скрытые ячейки, также его нельзя использовать на защищённых листах. Правильный способ - юзать метод UsedRange(). Правда, как в (5) может быть не всегда корректно - кроме общего количества строк/колонок надо ещё учитывать, что диапазон может начинаться не с первой ячейки листа...
|
|||
8
ОДНик
06.07.05
✎
09:13
|
(4) И что из этого следует?
Sub Macr() ' ' ' ' ActiveWindow.LargeScroll ToRight:=1 Range("O1").Select End Sub |
|||
9
Кукуруза
06.07.05
✎
09:15
|
(8) Ты хочешь сказать что во время записи макроса ты нажал CTRL-вправо?
И прочитай обязательно (6) |
|||
10
ОДНик
06.07.05
✎
09:23
|
(6)(9) Ожидаю, что ExcelApp.Cells(1,1).SpecialCells(11).Column должен вернуть номер последнего столбца, содержащего данные. По-моему, я ответил на этот вопрос.
Да, CTRL-вправо нажимал.(открыл нужный файл;начал запись макроса;нажал CTRL-вправо;остановил запись;результат представил тебе)Что не так? |
|||
11
Кукуруза
06.07.05
✎
09:28
|
>> Column должен вернуть номер последнего столбца, содержащего данные
блин, пацан, читай (1) последнюю строку |
|||
12
Кукуруза
06.07.05
✎
09:30
|
Cells(1, 1).End(xlToRight).column
|
|||
13
Кукуруза
06.07.05
✎
09:33
|
Или (если бы ты не поленился нажать во время записи макроса CTRL-End):
Cells(1, 1).End(xlLastCell).column |
|||
14
ОДНик
06.07.05
✎
09:44
|
(13) Предлагаю вести диалог в спокойной манере. Сначала(1) ты предлагал >>
2. На листе нажать контрол-вправо, а теперь вдруг CTRL-END. Ну, нажал, в макросе такая строка: Range("I13").Select. Да, собственно, проблема уже почти разрешилась, осталось только непонятным, что могло вызвать такое количество эмоций у тебя? |
|||
15
Nike
06.07.05
✎
09:46
|
test
|
|||
16
DES
06.07.05
✎
09:57
|
Знатоки, подскажиет ...
Как скрыть лишие строки и столбцы делаю так: Worksheet.Range("54:65536").EntireRow.Hidden=True; Worksheet.Range("K:IV").EntireColumn.Hidden=True; как скрывать в зависимости от последнего заполненного столбца/строки ? и как потом выделить "область печати" ? Worksheet.PageSetup.PrintArea="$A$1:$I$52"; |
|||
17
Палыч
06.07.05
✎
10:04
|
(0) Как ты думаешь, какая последняя использованная может быть у ячейки (1,1)? ;-)
А вообще, рекомендую прислушаться к (7). |
|||
18
Палыч
06.07.05
✎
10:06
|
(+17) последняя использованная колонка
|
|||
19
ОДНик
06.07.05
✎
10:07
|
(17) Мне кажется, она же сама. По крайней мере, такой результат возвращают обсуждаемые здесь методы для пустого листа.
|
|||
20
ОДНик
06.07.05
✎
10:09
|
(+19)В смысле, строка=1, столбец=1
|
|||
21
Палыч
06.07.05
✎
10:23
|
(20) А в чем тогда проблема?
|
|||
22
Кукуруза
06.07.05
✎
10:25
|
(14) эмоции вызвал твой тормозизм в (3).
это первое. второе. >> На листе нажать контрол-вправо, а теперь вдруг CTRL-END xlToRight - ctrl-right или xlLastCell - ctrl-end имеют разный смысл. Первый ищет правую границу в текущем диапазоне, второй во всем диапазоне. Выбирай что тебе больше подходит. И не пешы гона. |
|||
23
Djkxfhf
06.07.05
✎
10:38
|
http://www.kuban.ru/forum_new/forum9/arhiv/232879.html
. Excel_Лист = Excel.Worksheets(i); //просмотрим ячейки одного листа первИспСтрока = Excel_Лист.UsedRange.Row; ВсегоСтрок = первИспСтрока + Excel_Лист.UsedRange.Rows.Count -1; первИспСтолбец = Excel_Лист.UsedRange.Column; ВсегоСтолбцов = первИспСтолбец + Excel_Лист.UsedRange.Columns.Count -1; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |