Excel VBA中相对path而不是绝对path
下面的代码工作正常,但现在如果我想让它给我的同事,我需要使用相对path获取代码中的工作簿:
Sub HELLO() Dim x As Workbook Sheets("Sheet1").Cells.Clear '## Open both workbooks first: Set x = Workbooks.Open("C:\Users\500722\Desktop\dashboard\Task.xls") 'Now, transfer values from x to y: Sheet1.Cells(1, 1) = x.Sheets("Page 1").Range("A1") With x.Sheets("Page 1").UsedRange 'Now, paste to y worksheet: Sheet1.Range("A1").Resize( _ .Rows.Count, .Columns.Count) = .Value End With x.Close End Sub
如果我使用给Set x = Workbooks.Open("\Task.xls")
我得到一个错误说path找不到。
用这个代替:
Set x = Workbooks.Open(ThisWorkbook.Path & "\Task.xls")
您的问题的不同观点 – macros芒答案确实提供了相对于工作簿的path。
你的示例代码是引用用户的桌面,所以我猜测可能是你之后的path – 相对于用户的path。
'Special folders are : AllUsersDesktop, AllUsersStartMenu 'AllUsersPrograms, AllUsersStartup, Desktop, Favorites 'Fonts, MyDocuments, NetHood, PrintHood, Programs, Recent 'SendTo, StartMenu, Startup, Templates Public Sub Test() Dim oShell As Object Set oShell = CreateObject("WScript.Shell") MsgBox oShell.SpecialFolders("Desktop") End Sub
如果您searchSpecialFolders VBA
,有许多网站会提供此信息。 http://www.rondebruin.nl/win/s3/win027.htm
https://bytes.com/topic/access/insights/933853-find-users-special-folders-such-desktop-my-documents
- 在VBA自动筛选器中使用string数组作为条件
- VBA – 试图validation两列,并在一个值中缺less值时resize
- 从原始文件夹复制的文件不能被打开
- RegEx在Dreamweaver中查找/replace – 将HTML粘贴为variables?
- 名称dataframe和.csv由第一个列标题/variables输出
- 通过Excel OLAP多维数据集 – 传输层错误
- Excel VBA – 使用单元格中的值作为地址来定位另一个单元格
- 在C#中创build一个自定义ODBC / OLE驱动程序
- SUM基于多个条件的单元格值 – A列或B列单元格为true。 任何一个。 但并不总是这两个条件都是真实的