Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Переменные в адресе ячейки / 8 сообщений из 8, страница 1 из 1
05.10.2007, 12:25:18
    #34849278
vad-anatolij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в адресе ячейки
Добрый день.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim r As Range, j As Long
    Set r = Selection
    j = r.Column
' Определяем адрес столбца выделенной ячейки
    MsgBox j
  For t =  20  To  2  Step - 1 
    If Range("F" & t).Value = "<>Цех1" Then
    Rows(t).Delete
    End If
    Next

Не могу понять, как вместо "F" ввести переменную?
Спасибо.
...
Рейтинг: 0 / 0
05.10.2007, 12:35:20
    #34849348
Nitrolis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в адресе ячейки
vad-anatolijДобрый день.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim r As Range, j As Long
    Set r = Selection
    j = r.Column
' Определяем адрес столбца выделенной ячейки
    MsgBox j
  For t =  20  To  2  Step - 1 
    If Range("F" & t).Value = "<>Цех1" Then
    Rows(t).Delete
    End If
    Next

Не могу понять, как вместо "F" ввести переменную?
Спасибо.

замени
Код: plaintext
Range("F" & t).Value 
на
Код: plaintext
cells(t,j).Value
...
Рейтинг: 0 / 0
07.10.2007, 19:04:46
    #34852657
vad-anatolij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в адресе ячейки
Итоговый макрос
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim r As Range, j As Long
    Rows("1:1").Select
    Selection.Find(What:="Цех", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.Select
    Set r = Selection
    j = r.Column
  For t =  20  To  2  Step - 1 
    'If Range("F" & t).Value = "<>Цех1" Then
    If Cells(t, j).Value = "<>Цех1" Then
    Rows(t).Delete
    End If
    Next
Не происходит удаления строк, хотя содержание ячеек (t, j) подтверждается проверкой (использовал точки останова и пошаговый). Переменная t изменяется добросовестно.
Где я допускаю ошибку?
Спасибо.
...
Рейтинг: 0 / 0
07.10.2007, 19:43:48
    #34852683
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в адресе ячейки
Вместо

Код: plaintext
If Cells(t, j).Value = "<>Цех1" Then

надо

Код: plaintext
If Cells(t, j).Value <> "Цех1" Then
...
Рейтинг: 0 / 0
07.10.2007, 19:46:51
    #34852685
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в адресе ячейки
И чтобы найти слов Цех в первой строке не надо выделять её

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub Макрос1()
Dim r As Range, j As Long, t As Long
Dim iFind As Range

    Set iFind = Rows("1:1").Find(What:="Цех1", LookIn:=xlFormulas, LookAt:=xlPart)
    If iFind Is Nothing Then
        MsgBox "Столбец не найден"
        Exit Sub
    End If
    j = iFind.Column
    For t =  20  To  2  Step - 1 
        If Cells(t, j).Value <> "Цех1" Then
            Rows(t).Delete
        End If
    Next
End Sub
...
Рейтинг: 0 / 0
09.10.2007, 16:32:01
    #34857551
vad-anatolij
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в адресе ячейки
Добрый день.
А если я ввожу дополнительную переменную?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Макрос1()
Dim r As Range, j As Long, t As Long
Dim iFind As Range, X As Long

    Set iFind = Rows("X:X").Find(What:="Цех1", LookIn:=xlFormulas, LookAt:=xlPart)
    If iFind Is Nothing Then
        MsgBox "Столбец не найден"
        Exit Sub
    End If
    j = iFind.Column
    For t =  20  To  2  Step - 1 
        If Cells(t, j).Value <> "Цех1" Then
            Rows(t).Delete
        End If
    Next
End Sub

то ругается на строчку
Код: plaintext
Set iFind = Rows("X:X").Find(What:="Цех1", LookIn:=xlFormulas, LookAt:=xlPart)
в случае переменной как необходимо задавать диапазон?
Спасибо.
...
Рейтинг: 0 / 0
09.10.2007, 18:40:43
    #34858135
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в адресе ячейки
Код: plaintext
1.
    X =  5  'пятый ряд
    Set iFind = Rows(X).Find(What:="Цех1", LookIn:=xlFormulas, LookAt:=xlPart)
...
Рейтинг: 0 / 0
09.10.2007, 18:47:10
    #34858149
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменные в адресе ячейки
Кстати, если у Вас столбец называется точно "Цех1", то лучше аргумент LookAt:=xlPart заменить на LookAt:=xlWhole , это будет означать искать ячейку целиком . При аргументе LookAt:=xlPart также будет находиться и Цех1, и Цех11, и Цех12, и Цех13 и т.д. а с аргументом LookAt:=xlWhole будет находиться ячейка, содержащая точный текст для поиска.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Переменные в адресе ячейки / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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