2014-07-08 109 views
0

我想填寫一個單元格塊中的列表:D2:E8向下移動。當我到達D8時,我希望能夠輸入(數字或常規)並移至E2以啓動列表的第二列。我意識到我可以標籤,輸入,標籤,輸入...,但是,我不想!這裏是我的代碼:Excel 2013 |試圖從列的底部移動到列的頂部

Sub returntotop() 
' 

' return_to_top Macro 
' 

If Selection.Address = "Sheet3!$D$8" Then 
    Application.OnKey "~", "ActiveCell.Offset(-6, 1).Select" 
End If 

End Sub 

但是,它什麼都不做。

+1

不選擇* D2:E8 *然後按* ENTER KEY *適合你?你能澄清你想達到什麼嗎? – L42

+0

我知道。我可以這樣做,但是,我很懶,不想全選。當我按Enter鍵時,我希望能夠將選擇從D8發送到E2。我是新手(非常新手)VBA「學生」,並希望從中學習。 – Rupedaddy

回答

1

你可以設計一個事件過程,以激活E2任何時候你嘗試去從D8到D9 - 堅持以下到工作表模塊:

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
    Static mybool As Boolean 
    If Target.Address = Range("D8").Address Then 
     mybool = True 
     Exit Sub 
    End If 
    If mybool = True And Target.Address = Range("D9").Address Then 
     Range("E2").Activate 
    End If 
    mybool = False 
End Sub 

@ Rupedaddy - 你能來解決這一問題?如果不是,你最有可能把上面的代碼粘在錯誤的地方,這表明你可能不熟悉目標代碼模塊,所以讓我試着更好地解釋。

您是否看到Project explorer窗口?類似於http://www.excel-vba.com/zi-vbe-project-add-sheet.jpg,應該默認顯示在VBE窗口的左上角。如果是的話只是嘗試,並通過樹狀結構會顯示找到自己的方式,應該是相當直觀:

  • 發現,涉及到你感興趣的工作簿
  • 下方,探索「的Microsoft Excel對象」節點的VBAProject
  • 雙擊與您的工作表有關的子節點。這將在主代碼窗口中打開工作表對象代碼模塊

然後,只需將上面的代碼粘貼在那裏 - 您應該在途中。這是要將事件過程輸入到它們應該關聯的對象的代碼模塊中。

希望這有助於

編輯:此爲所有工作表工作,堅持下面的代碼,您的工作簿對象的代碼模塊中

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) 
    Static ws As Worksheet 
    If Target.Address = Range("D8").Address Then 
     Set ws = Sh 
     Exit Sub 
    End If 
    If ws Is Sh Then 
     Set ws = Nothing 
     If Target.Address = Range("D9").Address Then 
      Range("E2").Activate 
     End If 
    End If 
End Sub 
+0

我無法讓它工作。這有助於告訴我我的單元格在Sheet3中嗎? – Rupedaddy

+1

@Rupedaddy其實你需要把它放在Sheet3代碼中。 – L42

+0

你們都很棒!我以爲我曾嘗試在Sheet3對象上粘貼上述內容,但顯然我從來沒有這樣做過。現在它在那裏有效。這是有道理的。感謝大家的幫助,並與像我這樣的新手合作。我還有很長的路要走。 :) – Rupedaddy