返回列表 上一主題 發帖

[發問] VBA路徑裡面若有變數,如何改自動抓?

[發問] VBA路徑裡面若有變數,如何改自動抓?

如下面VBA,有沒有辦法讓我的路徑裡面的電腦登入者自動抓,不然每次登入者不同都要偵錯去改路徑名稱,有求專家了,謝謝


Private Sub Workbook_Open()
Workbooks.Open Filename:="C:\Users\電腦登入者\Desktop\TEST\TEST.xlsm"
Application.EnableEvents = False
'Workbooks("TEST.xlsm").Close SaveChanges:=False
Application.EnableEvents = True
ThisWorkbook.Close
End Sub

資料檔, 儘量放d槽, 再建捷徑到桌面,
一般都會避免直接在桌面放資料檔~~
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

回復 2# 准提部林


  謝謝淮大回復,我資料檔有另外放其他路徑,桌面的是user的使用檔,
但由於user都會把使用檔抓下來放桌面,所以才想說有這需求 for 因應user不同來變動路徑

TOP

回復 3# RCRG

Option Explicit '宣告GetUserName Function
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
(ByVal lpBuffer As String, _
nSize As Long) As Long

Sub Get_User_Name()
Dim lpBuff As String * 25
Dim ret As Long, UserName As String
ret = GetUserName(lpBuff, 25)
UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
Debug.Print UserName
End Sub

這段程式可以抓出Windows登入者帳號(UserName),請依需求自行修改

TOP

回復 4# jcchiang

謝謝大大回復,我是也有段可以抓登入帳號的程式(抓登入者並填在某欄位),可是我不知道怎樣把他跟我的路徑結合在一起...XD

TOP

回復 5# RCRG

"C:\Users\" + UserName + "\Desktop\TEST\TEST.xlsm"

TOP

回復 6# jcchiang


    原來是用 + 結合,我一直用&
謝謝大大,已解。

TOP

本帖最後由 准提部林 於 2020-1-16 15:44 編輯

沒測. 不知行不行??
Tr = Split(Environ("USERPROFILE"), "\")
Workbooks.Open Filename:="C:\Users\" & Tr(UBound(Tr)) & "\Desktop\TEST\TEST.xlsm"

或者改
Tr = Split(Environ("HomePath"), "\")


Workbooks.Open Filename:="C:\Users\" & Environ("USERNAME") & "\Desktop\TEST\TEST.xlsm"


====================
EXCEL參考資料:
http://blog.xuite.net/smile1000mile/blog

TOP

        靜思自在 : 慈悲沒有敵人,智慧不起煩惱。
返回列表 上一主題