Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Определить номер столбца, в котором есть определенный текст - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Определить номер столбца, в котором есть определенный текст (Макросы/Sub)
Определить номер столбца, в котором есть определенный текст
Dendibar Дата: Пятница, 15.04.2016, 13:20 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день!

Прошу помочь с макросом (он также есть во вложенном файле).
Я вынес номер столбца в качестве переменной x, для того чтобы подставить номер столбца в формулу дальше. Дело в том, что номер столбца будет меняться в разных файлах с которыми буду работать, поэтому хочу привязать номер столбца к наименованию столбца.
То есть вместо (x = 1), хочу присвоить что-то вроде (x = ("номер столбца, где есть текст "Название 1"))

[vba]
Код

Sub Вопрос()

Dim lLastRow As Long, lLastCol As Long, cl As Long, rw As Long
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row '
lLastCol = Cells(1, Columns.Count).End(xlToLeft).Column

For cl = 1 To lLastCol
For rw = 1 To lLastRow

x = 1

If (Cells(rw, x) > Cells(rw, x + 1)) And (Cells(rw, x + 1) <> "") Then
Cells(rw, x) = 0
End If

    Next rw
    Next cl
End Sub
[/vba]
К сообщению приложен файл: 6534510.xlsm (16.3 Kb)
 
Ответить
СообщениеДобрый день!

Прошу помочь с макросом (он также есть во вложенном файле).
Я вынес номер столбца в качестве переменной x, для того чтобы подставить номер столбца в формулу дальше. Дело в том, что номер столбца будет меняться в разных файлах с которыми буду работать, поэтому хочу привязать номер столбца к наименованию столбца.
То есть вместо (x = 1), хочу присвоить что-то вроде (x = ("номер столбца, где есть текст "Название 1"))

[vba]
Код

Sub Вопрос()

Dim lLastRow As Long, lLastCol As Long, cl As Long, rw As Long
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row '
lLastCol = Cells(1, Columns.Count).End(xlToLeft).Column

For cl = 1 To lLastCol
For rw = 1 To lLastRow

x = 1

If (Cells(rw, x) > Cells(rw, x + 1)) And (Cells(rw, x + 1) <> "") Then
Cells(rw, x) = 0
End If

    Next rw
    Next cl
End Sub
[/vba]

Автор - Dendibar
Дата добавления - 15.04.2016 в 13:20
_Boroda_ Дата: Пятница, 15.04.2016, 13:23 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Что-то типа вот такого нужно?
[vba]
Код
x= WorksheetFunction.Match("Название 1", Range("1:1"), 0)
[/vba]
Это
Код
=ПОИСКПОЗ("Название 1";1:1;0)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЧто-то типа вот такого нужно?
[vba]
Код
x= WorksheetFunction.Match("Название 1", Range("1:1"), 0)
[/vba]
Это
Код
=ПОИСКПОЗ("Название 1";1:1;0)

Автор - _Boroda_
Дата добавления - 15.04.2016 в 13:23
Manyasha Дата: Пятница, 15.04.2016, 13:29 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Или вот так можно:
[vba]
Код
x = Rows(1).Find("Название 1", , xlValues, xlWhole).Column
[/vba]
и х лучше вынести за циклы, зачем Вам его на каждом шаге вычислять?
[vba]
Код
    x = Rows(1).Find("Название 1", , xlValues, xlWhole).Column
    For cl = 1 To lLastCol
        For rw = 1 To lLastRow
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеИли вот так можно:
[vba]
Код
x = Rows(1).Find("Название 1", , xlValues, xlWhole).Column
[/vba]
и х лучше вынести за циклы, зачем Вам его на каждом шаге вычислять?
[vba]
Код
    x = Rows(1).Find("Название 1", , xlValues, xlWhole).Column
    For cl = 1 To lLastCol
        For rw = 1 To lLastRow
[/vba]

Автор - Manyasha
Дата добавления - 15.04.2016 в 13:29
Dendibar Дата: Пятница, 15.04.2016, 13:47 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Большое спасибо - то, что нужно! И спасибо за совет по вынесению x за циклы - гораздо быстрее получается)
 
Ответить
СообщениеБольшое спасибо - то, что нужно! И спасибо за совет по вынесению x за циклы - гораздо быстрее получается)

Автор - Dendibar
Дата добавления - 15.04.2016 в 13:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Определить номер столбца, в котором есть определенный текст (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!