Board logo

標題: [發問] [發問] 請問EXCEL能否自動填入使用者名稱 [打印本頁]

作者: luckeyfly    時間: 2019-1-19 09:18     標題: [發問] 請問EXCEL能否自動填入使用者名稱

在共用檔案夾內有歷年累積下來的上千個EXCEL檔案,按照各種可能狀況寫好不同的程式和分類

使用者連入資料夾中,在工作分類中找到對應的EXCEL檔案
只需要:打開檔案、填入數值、更改填表人姓名、列印紙本
不需要存檔

請問「填表人姓名」這個儲存格,有沒有公式可以自動填入姓名?
最好是能抓取EXCEL軟體設定的使用者名稱,其次是抓電腦使用者名稱或是電腦名稱
作者: luckeyfly    時間: 2019-1-19 13:42

另外一個想法,是在 C:\之下,儲存一個TXT文字檔,檔案名稱是   NAME(王小名).TXT
用EXCEL的公式讓儲存格去抓到  王小名  三個字

*避免跟其他檔案混淆,所以檔名複雜一點,用NAME(王小名)的方式來區隔*
作者: luckeyfly    時間: 2019-1-19 14:12

GOOGLE 找到一個解法,建一個 C:\姓名.XLSX,裡面就只有A1=姓名、B1=王小名
利用VLOOKUP跨檔案搜尋,比對「姓名」回傳「王小名」

希望能有直接讀取檔名的解法
作者: Hsieh    時間: 2019-1-21 08:52

本帖最後由 Hsieh 於 2019-1-21 09:02 編輯

回復 1# luckeyfly

自定義函數
[attach]29985[/attach]
不過這樣寫公式在儲存格內,是會依據開啟檔案者的使用者名稱變動
要讓儲存格寫入值,才不會因開啟的使用者不同而改變,如此就必須用執行程序按鈕1_Click來寫入
  1. Function MyName()
  2. MyName = Application.UserName
  3. End Function
  4. Sub 按鈕1_Click()
  5. ActiveSheet.[H2] = MyName()
  6. End Sub
複製代碼

作者: luckeyfly    時間: 2019-1-22 08:06

感謝,這個「依據開啟檔案者的使用者名稱變動」就是我需要的
作者: luckeyfly    時間: 2019-2-12 17:06

回復 4# Hsieh

H大

我因為需要儲存格是變動的(根據不同使用者自動變更名稱)
所以
1、每個使用者在EXCEL的選項中,使用者名稱都輸入自己名字
2、所有EXCEL檔案都在模組加入指令
Function MyName()
MyName = Application.UserName
End Function
3、在需要的儲存格中使用 =MyName() 指令
4、檔案放在分享資料夾中,給使用者連線開啟
理論上,每個使用者開啟檔案後都會自動更新成自己的名字

發現問題是
有些檔案儲存格顯示的姓名會自動更新
有些檔案儲存格顯示的姓名會維持上一個使用者的名字,必須打開儲存格(進入編輯公式模式)在enter一次,名字才會更新

檔案在附件,麻煩請看一下是哪裡的設定有錯誤,謝謝

[attach]30094[/attach]
作者: luckeyfly    時間: 2019-2-13 08:44

補充 測試結果

不會自動更新的檔案,用快速鍵 CTRL+ALT+SHIFT+F9 可以刷新為正確的使用者姓名,表示函數是正確的,只是不知道為甚麼在檔案開啟時不會自動更新
作者: Hsieh    時間: 2019-2-13 09:21

回復 7# luckeyfly

不會自動更新者可能是在EXCEL的自動重算設定取消

   [attach]30097[/attach]
作者: 准提部林    時間: 2019-2-13 14:19

找不到不會自動更新的問題在哪?
試試修改公式看看:
=MyName()&T(NOW())

若還不行, 用workbookopen吧!!
作者: luckeyfly    時間: 2019-2-13 16:57

回復  luckeyfly

不會自動更新者可能是在EXCEL的自動重算設定取消
Hsieh 發表於 2019-2-13 09:21


回覆

自動重算的設定正確打勾
作者: luckeyfly    時間: 2019-2-13 17:00

找不到不會自動更新的問題在哪?
試試修改公式看看:
=MyName()&T(NOW())

若還不行, 用workbookopen吧! ...
准提部林 發表於 2019-2-13 14:19


感謝 回覆

改用公式 =MyName()&T(NOW())  目前可以正常更新

另外找到一個方法,是在 workbookopen 加入 application.calculatefull,同時測試中
作者: luckeyfly    時間: 2019-2-19 09:09

已經建立的舊檔案,目前運作都正常,每次開啟檔案時候姓名都可以自動刷新

補充發問
我需要在舊檔案中複製某些工作表出來,組合成新的樣板給同仁使用,
做法是打開檔案,找到需要的工作表,在工作表標籤上點右鍵-複製-建立副本-選擇[新活頁簿]

因為這三行指令是放在舊檔案的模組中
Function MyName()
MyName = Application.UserName
End Function
所以變成從工作表直接建立副本出來產生的新活頁簿,會缺少這個自訂模組,需要手動重新插入模組

請問有沒有辦法讓EXCEL在建立新活頁簿的時候,能套用範本之類的,讓所有新的活頁簿都自動產生這三行的自訂模組?

我試過把自訂模組加在PERSONAL.XLSB,讓EXCEL啟動自動載入,但是無法運作
作者: 准提部林    時間: 2019-2-19 10:50

本帖最後由 准提部林 於 2019-2-19 10:52 編輯

改用"定義名稱", 刪掉vba自訂函數
定義名稱:=MyName
定義公式:=GET.DOCUMENT(36)&T(NOW())

儲存格公式:=MyName
作者: luckeyfly    時間: 2019-2-20 13:23

感謝准大

改用定義名稱方式可以使   在這裡下指令太神奇了




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)