返回列表 上一主題 發帖

[發問] 工作表移動或是複製時,新的工作表H7儲存格自動填寫日期跟時間

[發問] 工作表移動或是複製時,新的工作表H7儲存格自動填寫日期跟時間

工作表移動或是複製時,新的工作表H7儲存格自動填寫日期跟時間

圖片圈紅色處所視

copy.gif (138.78 KB)

copy.gif

Alton.rar (7.47 KB)

求版主跟老師幫忙 ! 先謝謝了 !

TOP

回復 1# niko88819

你的問題不是很清楚,故只好照我想法去揣摩!
  1. Sub 巨集1()
  2.     Sheets("20140319").Copy After:=Sheets(1)
  3.     Sheets("20140319 (2)").Name = Format(Date & Time, "yyyymmddhhmmss")
  4.     Range("H7") = Format(Date & Time, "yyyymmdd hh:mm")
  5. End Sub
複製代碼

TOP

老師是這樣的,20140319 可以任何工作表名稱
點選任何工作表名稱時,按右滑鼠鍵,勾選想要任意工作表名稱,選移動或是複製選項,勾選建立複本後按確定
當產生工作表複本時,該工作表複本H7自動填寫日期跟時間

TOP

只想到在ThisWorkbook裡面這樣做,但是只有在「新增」的時候會啟動程式碼,

Private Sub Workbook_NewSheet(ByVal Sh As Object)
    Range("H7") = Date & Time
End Sub


至於複製的時候自動加上日期及時間,在下只想到在被複製的表H7填入now的函數,
但這樣一來每張表的時間都會重新計算,但若把運算改手動,複製新表的時候時間又不會動,

另外雖然可以在Activate裡面設定若有複製工作表時    Range("H7") = Date & Time,
但這樣一來恐怕會因為一直執行判斷式而影響Excel的處理效率。

TOP

本帖最後由 Hsieh 於 2015-5-18 11:26 編輯

回復 4# niko88819
因為移動或複製並無可用的事件程序
所以只能利用工作表切換時計算工作表數量做依據來執行寫入時間日期
thisworkbook模組程式碼
  1. Public k As Integer
  2. Private Sub Workbook_Open()
  3. k = Sheets.Count
  4. End Sub

  5. Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  6. If k < Sheets.Count Then [H7] = Now
  7. k = Sheets.Count
  8. End Sub
複製代碼
學海無涯_不恥下問

TOP

超級版主,您真是太厲害了
感謝您幫忙 !
完美解決問題了

TOP

        靜思自在 : 虛空有盡.我願無窮,發願容易行願難。
返回列表 上一主題