2017-01-01 81 views
0

在此感謝您的幫助。我是新來的VBA,我需要選擇一個activecell的行頭-basically建設這個代碼,這似乎並不在VBA工作:返回與活動單元相同行中的單元格,並在VBA中選擇第一列

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

我不能使用C.End(xlToLeft)因爲我有另一在左邊的表中,儘管有一個空白列將2個表分開,但這個代碼跳轉到左邊的表。此外,我的表的第一列不是A,我不能硬編碼列號。 非常感謝,如果你能幫助! 西爾維婭

+0

對不起格式去怪異:我下面標有當我開始一個新行//: – Silvia

+1

'細胞([I4] .Row,[I4] .CurrentRegion.Column).Select'? – Slai

+0

僅供參考,在VBA中,聲明和設置必須位於不同的行上:Dim C as Range,然後是Set C = Range(「I4」)http://stackoverflow.com/documentation/excel-vba/ 1503/ranges-and-cells – Slai

回答

2

從什麼可以在您的文章可以理解的,我猜你是後

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

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

由於沒有使用「幫手」 range變量(像你的CR

如果你需要使用它們,然後將兩種選擇成爲:

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

@Silvia,這個解決方案不再工作嗎? – user3598756

相關問題