2016-11-15 67 views
0

我已經在單元格「B1」中指定需要打開我的表單(= MATCH(TODAY(),A:A,0))的單元格。在單元格中指定的行上打開的excel宏

我想在該行自動打開我的Excel表。 (例如:第10行=今天)

或者我可以在VBA中使用函數「= today()」嗎?

我是VBA中的一個菜鳥,所以你可以幫我嗎?

回答

0

放入工作表的代碼區下面的事件宏:

Private Sub Worksheet_Activate() 
    Cells(Range("B1").Value, "A").Select 
End Sub 

當工作表被打開,適當的細胞會自動Selected

enter image description here

因爲它是工作表代碼,它很容易安裝和自動使用:

  1. 右擊近Excel窗口
  2. 選擇查看代碼底部的標籤名稱 - 這帶來了一個VBE窗口
  3. 粘貼的東西並關閉VBE窗口

如果您有任何疑慮,請先在試用工作表上嘗試。

如果保存工作簿,宏將與其一起保存。 如果您正在使用一個版本的Excel更高然後2003,你必須保存 該文件作爲.XLSM而非的.xlsx

要刪除宏:

  1. 彈出窗口VBE如上
  2. 清晰的代碼進行
  3. 關閉VBE窗口

要了解更多關於一般的宏,請參閱:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

要了解更多有關事件宏(工作表的代碼),請參閱:

http://www.mvps.org/dmcritchie/excel/event.htm

宏必須爲此工作啓用!

編輯#1:

要獲得當文件被打開相同的行爲,留在原地以前的宏並把該宏在工作簿代碼區:

Private Sub Workbook_Open() 
    Application.EnableEvents = False 
     Sheets("Sheet1").Select 
     Cells(Range("B1").Value, "A").Select 
    Application.EnableEvents = True 
End Sub 

(您可以用工作表的名稱替換Sheet1)

+0

這可以在完整的文件也打開了?而不是僅在更換紙張時才使用? –

+0

@DennisLaan看我的**編輯#1 ** –