2016-04-01 5 views
1

У меня есть макрос VBA, который выбирает несколько ячеек на основе, если он содержит условное форматирование. Эти клетки не все будут в одном месте на каждом листе. То, что я ищу, - это команда пропустить activecell в следующую ячейку диапазона. То же, что и нажатие TAB в выделенном диапазонеКак пропустить выбранные ячейки в EXCEL, используя VBA,

В настоящее время я использую sendkeys, как показано ниже, однако это беспорядочно и продолжает добавлять пространства табуляции в следующей строке кода vba (отсюда «____Loop»)

ActiveCell.SpecialCells(xlCellTypeAllFormatConditions).Select 

Do Until Recount = Count 
Recount = Recount + 1 
Application.SendKeys "{TAB}", True 
    Loop 

Любые советы будут оценены

+0

Что такое подсчет и пересчет? –

ответ

0

Вот как вы можете цикл в диапазоне:

Dim rng As Range, c As Range 

Set rng = ActiveSheet.UsedRange.SpecialCells(xlCellTypeAllFormatConditions) 
For Each c In rng 
    c.Select 
Next c 

Это не ясно, что цель вашего кода. Что такое Count и Recount?

+0

Это прекрасно работает, я только что понял, что вы можете использовать функцию c.Select на нескольких этапах в том же скрипте, очень удобно. Спасибо Tim – Sam

0

Получить список выбранных ячеек и петли через них

Sub loopThroughCells() 
    Dim r as Range 
    Set r = Application.Selection 
    For i = 0 to r.length 
     MsgBox(r.value) 
    Next i 
End Sub 

Пусть выполнены три ячейки со значениями 1, 2 и 3 выбраны. При запуске макроса вы получите окна сообщений со значениями 1, 2 и 3 соответственно.

0

Если вам нужна только команда для кнопки вкладки, просто используйте .offset (# строк, которые вы хотите смещать, # столбцов, которые вы хотите компенсировать). Итак, как только вы знаете, как найти нужные вам ячейки, которые, как вам кажется, уже есть, вы можете просто put.offset (0,1) переместить одну ячейку вправо.

+0

Используя код Тима ниже: Dim ГСЧ В диапазоне, с как диапазон Set RNG = ActiveSheet.UsedRange.SpecialCells (xlCellTypeAllFormatConditions) для каждого С в ГСЧ c.offset (0,1) Далее гр – jf12345

+0

Hi JF, я знал о функции смещения, к сожалению, ячейки, которые я хочу прокрутить, не всегда будут в одном положении. Поэтому функция смещения не будет работать – Sam

Смежные вопросы