2015-08-25 20 views
1

我想點擊一個按鈕來記錄活動單元格地址,單擊

  • 記錄我在表1所選擇的活動單元格的地址,並將其放置到下一個空行中列「 B「。
  • 同樣在按鈕上單擊,我希望MsgBox顯示列」A「的對應行,其中包含參考編號。

到目前爲止,我有一個工作的按鈕,但我的編碼能力是有限的,這是我的全部:

Private Sub CellReferenceBtn_Click() 
MsgBox "The Active Cell Row and Column is " & ActiveCell(Row + 1, Column + 1).Address 
End Sub 

任何幫助表示讚賞!

+0

你能告訴我們到目前爲止還沒有工作嗎? – xidgel

+0

我在這篇文章中的代碼工作正常,但我只寫它來確定是否給了我活動單元格地址。我被困在從那裏去的地方。 我沒有進一步的編碼從那裏輸入單元格地址到列中,如我所述。 – Tombies

回答

0

在這裏你去:

Private Sub CellReferenceBtn_Click() 
    With ActiveCell 
     Sheet2.[offset(b1,counta(b:b),)] = .Address 
     MsgBox Sheet1.Cells(.Row, 1) 
    End With 
End Sub 
+0

謝謝Excel Hero,你的代碼也能工作!我很感激 – Tombies

+0

的幫助,使用'CountA'來檢測第一個空白單元格假定數據中沒有空白 - 不推薦。 – brettdj

+0

@brettdj大衛,真的嗎?唉......如果處理空白是設計規範的一部分(這裏不是這種情況),我用它代替:'Sheet2。[index(b:b,1 + match(「*」,b:b,-1)) ] =。地址' –

0

喜歡的東西

Sub AddForm() 
Dim ws1 As Worksheet 
Dim ws2 As Worksheet 
Set ws1 = Sheets(1) 
Set ws2 = Sheets(2) 

'check active sheet is sheet 1 
If ActiveCell.Parent.Name = ws1.Name Then 
    ws2.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = ActiveCell.Address 
    MsgBox ActiveCell.Address 
End If 
End Sub 
+1

謝謝Brettdj,你的代碼有效! – Tombies

0

這不是你是否需要工作表名稱以及單元格地址清楚。工作表名稱將生成完整的單元格區域地址,但如果您的目的是僅將單元格部分用於其他內容,那麼工作表名稱就會妨礙您的工作。這裏有三種可能性。

'just the cell address without the worksheet name 
Private Sub CommandButton1_Click() 
    With Worksheets("Sheet2") 
     .Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = _ 
      Selection(1).Address 
     'alternate for a larger selection of cells 
     '.Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = _ 
      Selection.Address 
     'pass focus back to the worksheet cells 
     Selection.Select 
    End With 
End Sub 

'cell range and the worksheet name 
Private Sub CommandButton1_Click() 
    Dim addr As String 
    With Worksheets("Sheet2") 
     addr = Selection(1).Address(external:=True) 
     'alternate for a larger selection of cells 
     addr = Selection.Address(external:=True) 
     .Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = Chr(39) & _ 
      Replace(addr, _ 
       Mid(addr, InStr(1, addr, Chr(91)), _ 
       InStr(1, addr, Chr(93)) - InStr(1, addr, Chr(91)) + 1), _ 
       vbNullString) 
     'pass focus back to the worksheet 
     Selection.Select 
    End With 
End Sub 

'full external path, worksheet name and cell range 
'you can use this locally and it will abbreviate itself to what is necessary 
Private Sub CommandButton1_Click() 
    With Worksheets("Sheet2") 
     .Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = _ 
      Selection(1).Address(external:=True) 
     'alternate for a larger selection of cells 
     .Cells(Rows.Count, "B").End(xlUp).Offset(1, 0) = _ 
      Selection.Address(external:=True) 
     Selection.Select 
    End With 
End Sub 
+0

謝謝你的努力Jeeped。現在全部排序:) – Tombies