2016-11-29 28 views
0

我正在使用Excel 2010並在A列中有一系列代碼。當用戶雙擊一個代碼時,它將使用下面的代碼複製到單元格A2的任何值工作表的BeforeDoubleClick事件 - 這工作得很好:Excel VBA用戶從任何地方雙擊單元格

If Not Intersect(Target, Range("A4:A100000")) Is Nothing Then Cancel = True 
Target.Copy Destination:=Sheets("GL Codes").Range("A2") 

的問題是,如果他們點擊列B中說明它不會從A列中複製相應的價值 - 我該怎麼做呢?

總之,無論用戶在哪一行雙擊,來自列A的單元格值都需要被複制到A2 - 這可能嗎?

回答

1

如果複製和粘貼都是「GL代碼」表,該代碼所在的位置,則不需要在代碼中引用它。

此外,由於您要輸入此代碼,只要有人在行1-100000中單擊,無需使用If Not Intersect(Target, Range("A4:A100000")) Is Nothing行。

代碼

Option Explicit 

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 

' copy the row in Column A of the cell you double-clicked to A2 
Range("A" & Target.Row).Copy Destination:=Range("A2") 

End Sub 
+0

的描述是打算寫完全相同的代碼。正在考慮添加'Cancel = TRUE',因此雙擊不會將光標置於單元格中進行編輯。 –

+0

@ DarrenBartrup-Cook隨時編輯我的代碼,如果它提高了答案 –

+0

@Shai Rado - 感謝這是工作 – Michael

-1

您正在檢查Range("A4:A100000")。 如果您想在A和B上工作,請將其更改爲Range("A4:B100000"),並且像任何列索引一樣。

+0

變化範圍,包括B,則副本從B到A2,當你雙擊的描述,這是沒有好 – Michael

相關問題