【发布时间】:2016-08-07 08:05:01
【问题描述】:
所以我有一个宏正在运行,但是它当前循环通过列 A 来查找拉文件名路径(即 Macintosh HD:Users:username:path:to:filename)。我希望它只找到文件名而不是完整路径。路径将不断变化,因此它必须有一种仅提取文件名的方法。我看过使用 GetFileName,但是我使用的是 Mac Office 2011,所以我在让它工作时遇到了问题。有什么想法吗?
Sub CSVauto()
'
' CSVauto Macro
'
' Keyboard Shortcut: Option+Cmd+x
'
' Declaring and setting variables for choosing CSV to import
Dim csvFileName As Variant
''Prompt window to choose csv file
csvFileName = Application.GetOpenFilename(FileFilter:="")
If csvFileName = False Then Exit Sub
'Setting a variable to find Experimental form name in Data Summary
Dim whatToFind As String 'Declaring that variable
If Right(csvFileName, 4) = ".csv" Then
whatToFind = Replace(csvFileName, ".csv", "")
MsgBox (whatToFind)
End If
'Looping through A column to find csvFileName without .csv extension
Set cell = Range("A:A").Find(What:=whatToFind, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False)
If Not cell Is Nothing Then
cell.Select
End If
添加
Dim whatToFind As String 'Declaring that variable
Dim NoCsv As String
If Right(csvFileName, 4) = ".csv" Then
NoCsv = Replace(csvFileName, ".csv", "")
whatToFind = Replace(NoCsv, ThisWorkbook.Path, "")‹
这给出了一个部分路径,而不是完整路径,它只是 :FolderonDesktop:FolderofCSV:Filename
我以为它只会给我文件名,但至少我能够砍掉它的一部分。现在我只需要摆脱两个层次就可以了。
【问题讨论】: