0

Excel から CSV を開くための vba を作成する必要があります。問題は、ファイルの形式が次のとおりであることです。

constan_name_file . YYY

例えば_

file1.124514 (1 日目)

file1.144521 (2 日目)

file1.152132 (別の日)

ファイル名は定数ですが YYY は可変ですが、中のファイルは CSV です。それを開くことは可能ですか?

4

4 に答える 4

2

Excel 2007 で csv ファイルを開くときに書式設定を維持できないという問題がありました。ファイル拡張子を 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
于 2014-04-07T15:58:52.417 に答える
1

はい、以下のコードを試してください。

dim sFileName as string
dim sExtension as string

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

workbooks.open sfilename, Format:=2
于 2013-03-28T15:44:20.607 に答える
1

ワイルドカードを使用していただきありがとうございます。ついにコードを取得しました。

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
于 2013-04-08T10:56:46.460 に答える
1

CSVファイルとして強制的に開かないでください

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

ここで 2 は、ファイルがカンマで区切られていることを指定します http://msdn.microsoft.com/en-us/library/office/ff194819.aspx

于 2013-03-28T15:43:14.397 に答える