Board logo

標題: [發問] VBA路徑裡面若有變數,如何改自動抓? [打印本頁]

作者: RCRG    時間: 2020-1-16 09:25     標題: 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
作者: 准提部林    時間: 2020-1-16 09:41

資料檔, 儘量放d槽, 再建捷徑到桌面,
一般都會避免直接在桌面放資料檔~~
作者: RCRG    時間: 2020-1-16 10:34

回復 2# 准提部林


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

回復 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),請依需求自行修改
作者: RCRG    時間: 2020-1-16 12:55

回復 4# jcchiang

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

回復 5# RCRG

"C:\Users\" + UserName + "\Desktop\TEST\TEST.xlsm"
作者: RCRG    時間: 2020-1-16 13:20

回復 6# jcchiang


    原來是用 + 結合,我一直用&
謝謝大大,已解。
作者: 准提部林    時間: 2020-1-16 15:22

本帖最後由 准提部林 於 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"


====================




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