簡體   English   中英

如何在vba excel中打開帶有可變擴展名的文件

[英]How to open a file with a variable extension in vba excel

我必須制作一個 vba 才能從 excel 打開 CSV 問題是文件有一種格式:

constan_name_file 。 YYYY

例如

file1.124514(第一天)

file1.144521(第 2 天)

file1.152132(改天)

名稱文件是一個常量,但 YYY 是可變的,但里面的文件是一個 CSV。 那可以打開嗎?

在 Excel 2007 中打開 csv 文件時,我遇到了保留格式的問題。在 excel 論壇中環顧四周只是為了找到一種可能的解決方案。 將文件擴展名從 csv 更改為 txt。

試圖使函數盡可能通用。 這里是:

Option Explicit

Function ChangeFileExt(filnamn As String, extensionOld, extensionNew)         
Dim oldname, newname as string     

oldname = ThisWorkbook.Path & "\" & filnamn & "." & extensionOld

newname = ThisWorkbook.Path & "\" & filnamn & "." & extensionNew         
Name oldname As newname  

End Function

'...............................................................................

Sub change_extension()     

' Objective: Want to keep csv-format at workbook.open

' Rename file from filename.csv to filename.txt      
' Open txt-file            
' process data          
' Rename back to csv-file if neccesary        


Dim csv, txt As String           

csv = "csv"      
txt = "txt"         

Call ChangeFileExt("file_name_to_change", csv, txt)      '  omit extension in file_name_to_change         

...all kinds of code       

Call ChangeFileName("file_name_to_change", txt, csv)      '  change filename back to original name


End Sub

為什么不強行將其作為 CSV 文件打開

Workbooks.Open Filename:=name, Format:=2

這里的 2 指定文件以逗號分隔http://msdn.microsoft.com/en-us/library/office/ff194819.aspx

是的,試試下面的代碼:

dim sFileName as string
dim sExtension as string

sExtension="YYY"
sfilename=constan_name_file & "." & sExtension

workbooks.open sfilename, Format:=2

感謝使用通配符,終於拿到代碼了。

sub GetFiles(direc As String, fich As String) 

    Dim strFileName As Variant

    strFileName = dir(direc & "\" & fich & ".******")

       If Len(strFileName) > 0 Then
        'open
       end if

End sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM