返回列表 上一主題 發帖

依當下執行時間,如何自動將指定工作表名稱修改成此格式"1018-上午"???

感謝GBKEE 版主,修改的確可如小弟告知的依序將同時段的工作表自動序號增加

但可能有點誤會小弟的意思了,小弟再說明一下
我指定的工作表是以其他的巨集執行產生的,可能就類似一個"新訂單"工作表,希望執行現請教的巨集後,即可將該工作表名稱自動變更成1018-下午形式,但當天可能又會再重新跑一次,又再產生一次新訂單工作表,如再按巨集執行時,名稱即變成1018-下午(1)(現執行巨集時是原工作表仍存在)

TOP

回復 4# p6703
試試看
  1. Option Explicit
  2. Sub EX()
  3.     Dim xlName As String, Sh As Worksheet, i As Integer
  4.     xlName = Format(Now(), "mmdd") & "-" & Mid(Format(Time(), "C"), 1, 2)
  5.     On Error GoTo R:
  6.     With Sheets.Add(, Sheets(Sheets.Count))
  7.         ActiveSheet.Name = xlName
  8.     End With
  9. R:
  10.     If Err.Number <> 0 Then
  11.         For Each Sh In Sheets
  12.             If InStr(Sh.Name, xlName) Then i = i + 1
  13.         Next
  14.         xlName = xlName & "(" & i & ")"
  15.         Err.Clear
  16.         Resume
  17.     End If
  18. End Sub
複製代碼

TOP

感謝二位版主的指導,小弟執行已可符合需求,但又有一延伸問題請教

因原執行時已產生一個1018-下午的工作表,當再次執行時即秀出錯誤(原工作表已有該名稱)

是否可將再次執行產生的工作表名稱依序增加格式為:1018-下午(2),1018-下午(3)....

再次感謝版主的教導,謝謝...^^

TOP

回復 1# p6703
  1. Sub Ex()
  2.     ActiveSheet.Name = Format(Now(), "mmdd") & "-" & Mid(Format(Time(), "C"), 1, 2)
  3. End Sub
複製代碼

TOP

回復 1# p6703


工作表是執行後新加上?
第一段是同時加上  "上午","下午" 兩份.
第二段是按當運行時時間加上
  1. Sub ampm()
  2.     Worksheets.Add
  3.     ActiveSheet.Name = Format(Now(), "MM-DD") & "-上午"
  4.     Worksheets.Add
  5.     ActiveSheet.Name = Format(Now(), "MM-DD") & "-下午"
  6. End Sub

  7. Sub bytime()
  8.     Worksheets.Add
  9.     ActiveSheet.Name = Format(Now(), "MM-DD") & "-" & IIf(Hour(Now()) >= 12, "下午", "上午")
  10. End Sub
複製代碼
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

        靜思自在 : 愛不是要求對方,而是要由自身的付出。
返回列表 上一主題