簡體   English   中英

我需要解釋VBA中的activecell.offset

[英]i need interpretation of activecell.offset in vba

我在理解某些VBA代碼方面有些困難。 我沒問題

activecell.offset(1,1).select

但是,我有問題

activecell.offset(1,1).range("A1").select 

AND

ActiveCell.Offset(0, 3).Columns("A:A").EntireColumn.Select

為什么在那里有一個.range(“ A1”)? 為什么那里有一個.columns? 我讀過其他文章,說這些東西不是必需的。 但是我使用相同的格式編寫了一些代碼,將.range(“ A1”)替換為其他范圍,並產生了不同的結果。 你能告訴我這些事嗎? 我的意思是偏移后的.range(“ A1”)。 我從試圖理解的其他人那里繼承了代碼。

記錄宏時,即使只選擇一個單元格,通常也會在Excel中找到.range(“ A1”)部分。 本質上,“ A1”是指.activecell.offset位置左上角的單元格。 因此,例如,如果您將其更改為:

ActiveCell.Offset(0, 1).Range("A1:A3").Select

活動單元格將成為從起始單元格開始為0行,+ 1列的單元格,然后選擇1列和3行大小的區域,但此處的A列和3行是對activecell.offset位置的相對引用。而不是參考工作表的A列第1-3行。 玩“ A1:A3”,了解我的意思。

代碼可能更簡單,只是說

ActiveCell.Offset(0, 1).Select

這將是完全有效的,但是此代碼不允許您選擇多個單元格。 為此,您需要使用RANGE。

activecell.offset(1,1).range(“ A1”)。select應該選擇一個向下移動一個單元格的單元格,並從活動單元格的右側選擇一列。

ActiveCell.Offset(0,3).Columns(“ A:A”)。EntireColumn.Select應該從活動單元格中選擇右側的第三列。

這些是正確的代碼

Range("a1").Offset(1, 1).Select

Columns("A:A").EntireColumn.Offset(0, 3).Select

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM