2017-01-01 1 views
0

заблаговременно за вашу помощь. Я новичок в VBA, и мне нужно, чтобы выбрать заголовок строки в ActiveCell -в основном строит этот код, который не похоже на работу в VBA:верните ячейку в том же ряду, что и activecell, и первый столбец выбора в VBA

Dim C as range ("I4") 
Dim R as C.CurrentRegion 
cells(C.row,R.Columns(1)).Select 

Я не могу использовать C.End(xlToLeft), потому что у меня есть еще один таблицу слева и, хотя есть один пустой столбец, разделяющий две таблицы, этот код перескакивает на таблицу слева. Кроме того, первый столбец моей таблицы не является A, и я не могу указать номер столбца. Большое спасибо, если вы можете помочь! Сильвия

+0

К сожалению форматирования пошли странно: ниже я отметил с //, когда я начинаю новую строку: – Silvia

+1

'Cells ([I4] .Row, [I4] .CurrentRegion.Column). Выберите? – Slai

+0

Для справки, в VBA декларация и настройка должны быть в отдельных строках 'Dim C as Range', а затем' Set C = Range («I4») 'http://stackoverflow.com/documentation/excel-vba/ 1503/диапазоны и ячейки – Slai

ответ

2

от этого мало что можно понять, в вашем посте, я предполагаю, что вы после

Intersect(ActiveCell.EntireRow, ActiveCell.CurrentRegion.Columns(1)).Select 

или

ActiveSheet.Cells(ActiveCell.row, ActiveCell.CurrentRegion.Columns(1).Column).Select 

без использования «вспомогательных» range переменных (как ваш C или R)

Должно ли вы необходимо, чтобы использовать их, то две альтернативы стали:

Set C = ActiveCell 
Set R = C.CurrentRegion 
Intersect(C.EntireRow, R.Columns(1)).Select 

или

Set C = ActiveCell 
Set R = C.CurrentRegion 
ActiveSheet.Cells(C.row, R.Columns(1).Column).Select 

, но в любом случае лучше не выбрать ничего и просто:

  • установить его в range переменная:

    Dim myCell as Range 
    
    set myCell = Intersect(ActiveCell.EntireRow, ActiveCell.CurrentRegion.Columns(1)) 
    
  • , а затем использование это:

    myCell.Font.ColorIndex = 3 
    
+0

Большое спасибо, очень признателен! Решение работает отлично! – Silvia

+0

добро пожаловать. вы можете затем отметить ответ как принятый. Спасибо! – user3598756

+0

@ Сильвия, не работает ли это решение? – user3598756