Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RANGE захватывает объединенные ячейки, как исключить? / 10 сообщений из 10, страница 1 из 1
06.08.2013, 20:59
    #38357439
Freeze729
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
Добрый день.

Делаю выделение диапазона
Columns("G:G").Select или Range("G:G").Select
Но поскольку 2 строка с колонки А по G объединена, то выделяется по сути "A:G".
Как свершить задуманное, мне нужно выделить "G:G"?

Мышью это делается элементарно, запись макроса показывает Range("G:G").Select
...
Рейтинг: 0 / 0
06.08.2013, 21:06
    #38357443
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
Freeze729,
10216597
...
Рейтинг: 0 / 0
07.08.2013, 04:57
    #38357667
i45
i45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
Freeze729Добрый день.

Делаю выделение диапазона
Columns("G:G").Select или Range("G:G").Select
Но поскольку 2 строка с колонки А по G объединена, то выделяется по сути "A:G".
Как свершить задуманное, мне нужно выделить "G:G"?

Мышью это делается элементарно, запись макроса показывает Range("G:G").Select


Зачем это вообще нужно делать???
...
Рейтинг: 0 / 0
07.08.2013, 09:34
    #38357761
Freeze729
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
Цель проверить на наличие скрытых столбцов или строк. Пример от скукотища работает на активных ячейках. Но меня он устроил. Уже поставив курсор на ячейку, могу вытащить свойство Hidden.
Если есть более легкие пути, пожалуйста изложите.
...
Рейтинг: 0 / 0
07.08.2013, 09:59
    #38357791
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
Есть, но сначала хотелось бы узнать, каким образом выделение столбца помогает обнаружить скрытые строки или столбцы.
...
Рейтинг: 0 / 0
07.08.2013, 11:02
    #38357928
Freeze729
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
Как-то так. Если функция возвращает не пустую строку, то значит Лист от нас что-то скрывает.
В принципе можно просто выяснить скрыта ли ячейка на установленном курсоре.
Можно считать остальное мусором и легким шифрованием))

Код: vbnet
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.
Sub ColumnSelect() '
 With ActiveCell
    Application.Goto Reference:=.Address(ReferenceStyle:=xlR1C1) & "," & .EntireColumn.Address(ReferenceStyle:=xlR1C1)
    .Activate
  End With
End Sub
Sub RowSelect()
  With ActiveCell
    Application.Goto Reference:=.Address(ReferenceStyle:=xlR1C1) & "," & .EntireRow.Address(ReferenceStyle:=xlR1C1)
    .Activate
  End With
End Sub



Function check_merge()

Dim r As Long, FirstRow As Long, LastRow As Long, FirstCol As Long, LastCol As Long, i As Long, st As String

FirstRow = ActiveSheet.UsedRange.Row
LastRow = ActiveSheet.UsedRange.Rows.Count - 1 + ActiveSheet.UsedRange.Row
For r = LastRow To FirstRow Step -1
RowSelect
  If Rows(r).Hidden = True Or ActiveSheet.Cells(ActiveSheet.Cells.Row, ActiveSheet.Cells.Column) = True Then
    check_merge = "Row " + Str(r)
    Exit Function
  End If
Next r
'=========
FirstCol = ActiveSheet.UsedRange.Column
LastCol = ActiveSheet.UsedRange.EntireColumn.Count - 1 + ActiveSheet.UsedRange.Column
For r = LastCol To FirstCol Step -1
  Address = ActiveSheet.Cells(1, r).Address(False, False)
  For i = 0 To 9
    Address = Replace(Address, i, "")
  Next
  st = Address + ":" + Address
 
  Columns(st).Select
  ColumnSelect
  If Selection.EntireColumn.Hidden = True Or ActiveSheet.Cells(ActiveSheet.Cells.Row, ActiveSheet.Cells.Column) = True Then
    check_merge = "Column " + st
    Exit Function
  End If
Next r

check_merge = ""
End Function
...
Рейтинг: 0 / 0
07.08.2013, 11:37
    #38357992
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
Многабукф

Почему бы не использовать что-то типа
Код: vbnet
1.
If Columns("G:G").EntireRow.Hidden


?
...
Рейтинг: 0 / 0
07.08.2013, 14:49
    #38358372
i45
i45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
Freeze729Цель проверить на наличие скрытых столбцов или строк. Пример от скукотища работает на активных ячейках. Но меня он устроил. Уже поставив курсор на ячейку, могу вытащить свойство Hidden.
Если есть более легкие пути, пожалуйста изложите.

Для этого вообще не требуется выделение, это все-равно что - ну давай еще и покрасим.
...
Рейтинг: 0 / 0
07.08.2013, 14:50
    #38358374
i45
i45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
Shocker.ProМногабукф

Почему бы не использовать что-то типа
Код: vbnet
1.
If Columns("G:G").EntireRow.Hidden


?

Ты выдал страшную тайну.
...
Рейтинг: 0 / 0
07.08.2013, 15:31
    #38358447
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RANGE захватывает объединенные ячейки, как исключить?
i45Ты выдал страшную тайну.я выдал ее еще здесь
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RANGE захватывает объединенные ячейки, как исключить? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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