[算表] 巨集的表單控件顯示運行代碼的時間點

看板Office作者 (bless)時間9年前 (2016/09/02 16:03), 9年前編輯推噓2(2048)
留言50則, 3人參與, 最新討論串1/1
軟體:excel 版本:2007 請問巨集的表單控件能否顯示運行代碼的時間點 當我運行按鈕1,就會顯示運行的時間點,在表單控制中顯示。 http://files.c.excelhome.net/forum/201609/02/155554j2nyjja62jzzy7ar.png
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 14.127.92.244 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1472803409.A.6BD.html

09/02 16:18, , 1F
設定於shapes.oleformat.object.caption
09/02 16:18, 1F

09/02 16:18, , 2F
時間格式調整可用format和now
09/02 16:18, 2F

09/02 16:22, , 3F

09/02 16:45, , 4F
嗚嗚,打不開youtube
09/02 16:45, 4F

09/02 18:21, , 5F
http://imgur.com/a/hUqKE 同youtube為demo
09/02 18:21, 5F

09/02 18:24, , 6F
第一次接觸這個,能否直接給個巨集截圖,非常感謝!
09/02 18:24, 6F

09/02 18:28, , 7F
回文搜尋一下就有
09/02 18:28, 7F

09/02 18:31, , 8F
古人云,授人以魚,不如授人以漁,我也知道要自己動手
09/02 18:31, 8F

09/02 18:32, , 9F
一個基礎薄弱了寫,再一個大陸的百度很渣。
09/02 18:32, 9F

09/02 18:58, , 10F
或是以shapes.drawingobject.caption
09/02 18:58, 10F

09/02 19:04, , 11F
寫法worksheet.shapes(name或index).oleformat.....=
09/02 19:04, 11F

09/02 19:04, , 12F
format()
09/02 19:04, 12F

09/02 19:07, , 13F
worksheet有可以是activesheet、sheets(name或index)或
09/02 19:07, 13F

09/02 19:07, , 14F
工作表1..等方式
09/02 19:07, 14F

09/02 22:23, , 15F
如果有兩個shapes,就要判斷么,<>shapes("A"),就
09/02 22:23, 15F
Shapes(2).DrawingObject.Caption = Application.Text(Now(), "yyyy-mm-dd hh:mm:ss:") ※ 編輯: yyingx (27.38.52.181), 09/02/2016 22:24:40

09/02 22:25, , 16F
是這樣思路嗎,但是不知道定位到shapes(2)上
09/02 22:25, 16F

09/02 22:26, , 17F
在vba內可直接用format,不用引用worksheetfunction內的
09/02 22:26, 17F

09/02 22:26, , 18F
text
09/02 22:26, 18F

09/02 22:27, , 19F
原po要定位到兩個shape的其中一個嗎?
09/02 22:27, 19F

09/02 22:36, , 20F
原P0運行"按鈕1",系統時間就生成這另外一個shape上
09/02 22:36, 20F

09/02 22:37, , 21F
Shapes(2).DrawingObject.Caption =
09/02 22:37, 21F

09/02 22:38, , 22F
Format(Now(), "yyyy-mm-dd hh:mm:ss:")
09/02 22:38, 22F

09/02 22:39, , 23F
現在我不知道另外一個shapes的name或者index
09/02 22:39, 23F

09/02 22:43, , 24F
name顯示於名稱方塊內
09/02 22:43, 24F

09/02 22:45, , 25F
但是另外一個shapes是要顯示系統時間的,這個怎么抓
09/02 22:45, 25F

09/02 22:53, , 26F
原po有二個按鈕,一個執行巨集,另一個顯示系統時間,這是
09/02 22:53, 26F

09/02 22:53, , 27F
否有誤解呢?
09/02 22:53, 27F

09/02 22:55, , 28F
沒有,最后的效果圖就是您demo那樣
09/02 22:55, 28F

09/02 22:56, , 29F
shapes(指定要顯示系統時間表單按鈕的name)
09/02 22:56, 29F

09/02 22:56, , 30F
name顯示於名稱方塊內
09/02 22:56, 30F

09/02 23:00, , 31F
這個name是按鈕2---->系統時間,這個是變量呀
09/02 23:00, 31F

09/02 23:00, , 32F
"按鈕2"----->"2016-09-02 23:00"
09/02 23:00, 32F

09/02 23:05, , 33F
變量的是caption而並非要原po改name的值,是以name去指去
09/02 23:05, 33F

09/02 23:06, , 34F
該shape
09/02 23:06, 34F

09/02 23:10, , 35F
還是不太明白,我現在就定位另一個表單按鈕,然后K入時間
09/02 23:10, 35F
Sub ErgShapes_2() Dim myShape As Shape Dim i As Integer i = 1 For Each myShape In Sheet4.Shapes If myShape.Type = msoTextBox Then myShape.TextFrame.Characters.Text = Format(Now(), "yyyy-mm-dd h h:mm:ss") i = i + 1 End If Next End Sub ※ 編輯: yyingx (27.38.52.181), 09/02/2016 23:22:08

09/02 23:23, , 36F
改抓文本框了,但感覺好繁瑣
09/02 23:23, 36F

09/02 23:46, , 37F
Sheets("未結訂單").Shapes("按鈕2_Click")
09/02 23:46, 37F

09/02 23:46, , 38F
.DrawingObject.Caption =
09/02 23:46, 38F

09/02 23:47, , 39F
Format(Now(), "yyyy-mm-dd hh:mm:ss")
09/02 23:47, 39F
ActiveSheet.Shapes("Button 2").OLEFormat.Object.Caption = Format(Now(), "yyyy-mm-dd hh:mm:ss") ※ 編輯: yyingx (27.38.52.181), 09/02/2016 23:55:55

09/02 23:56, , 40F
終于搞定,謝謝SO大耐心指點
09/02 23:56, 40F

09/03 03:39, , 41F
我也學到一招了0,0 我也要用這個時間點
09/03 03:39, 41F

09/03 18:57, , 42F
還想追問一下,Button 2是屬于shapes的name還是index?
09/03 18:57, 42F

09/03 20:46, , 43F
應為shape's name
09/03 20:46, 43F

09/03 20:47, , 44F
抱歉,回文內的index應更正為index number才為正確
09/03 20:47, 44F

09/03 20:49, , 45F
因index為shape's name或是index number
09/03 20:49, 45F

09/03 20:58, , 46F
假如shapes有表單控件,圖片,文本框,這個index NO.如何
09/03 20:58, 46F

09/03 20:58, , 47F
09/03 20:58, 47F

09/03 21:13, , 48F
可以巨集從選取中的按鈕,回傳index值
09/03 21:13, 48F

09/03 21:18, , 49F
或以回文寫到的shape集合迴圈,加上判斷回傳要的index值
09/03 21:18, 49F

09/04 15:04, , 50F
錄製巨集也能幫你改按鈕名稱
09/04 15:04, 50F
文章代碼(AID): #1NoJ9HQz (Office)
文章代碼(AID): #1NoJ9HQz (Office)