powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / RANGE захватывает объединенные ячейки, как исключить?
10 сообщений из 10, страница 1 из 1
RANGE захватывает объединенные ячейки, как исключить?
    #38357439
Freeze729
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

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

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

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

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


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

Код: 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
RANGE захватывает объединенные ячейки, как исключить?
    #38357992
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Многабукф

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


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

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

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


?

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


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