テキストファイルへの接続が1つ含まれるExcelファイルがあります。私はこのファイルへのパスを毎日更新する必要があります(私が制御できない理由でファイル名が変わるため)。私はパスに変更を加えるために次のコードを使用し、素晴らしい動作します。問題は、デリミタの区切りや列のデータ型など、他のすべてのオプションを失うことです。Excel VBA接続パスを変更しますが、区切り文字と列の整形を維持します
パスを変更してフォーマットを維持できる方法はありますか?
ここでは、コードです:
Sub Update_Connection()
Dim Conn As Variant
Dim ConString As String
Dim oldPath As String, NewPath As String
NewPath = "\\Reports\Data\dailydata" & (Application.WorksheetFunction.Concat(Format(Now(), "dd"), Format(Now(), "mm"), Format(Now(), "yy")) * 4) & ".txt"
Debug.Print NewPath
Set Conn = ActiveWorkbook.Connections.Item(1)
'Debug.Print Conn.TextConnection.Connection
ConString = Conn.TextConnection.Connection
oldPath = Split(ConString, ";")(1)
ConString = Replace(ConString, oldPath, NewPath)
Conn.TextConnection.Connection = ConString
End Sub
End Subの場合はそれが唯一のテキストファイルであれば終了フォルダ内では、テキストファイルの名前とは無関係に、DIR関数を使用してすべての場合に一度これを行うことができます。コードはファイル名を見つけてそこから取得することができます。このテキストファイルの特定のフォルダを作成して、そこに1つのファイルを常に保存できますか?その中に別のフォルダを作成して以前のファイルと呼ぶことができるので、過去のすべてのテキストファイルの記録を保存することもできます。また、テキストファイルの名前が予測可能な文字列で始まる場合は、最新のバージョンをキャプチャするように自動化することもできます。 – Ibo
もう一つの提案は、フォルダ内の最後に作成されたファイルを簡単に見つけることです。ファイルをループして、最近作成されたファイルの名前を取得するだけです。ファイルの作成日時を取得する方法は次のとおりです。https://msdn.microsoft.com/en-us/library/office/gg264090.aspx – Ibo
ありがとうございますが、ファイルを見つけることは問題ではありません。新しいファイルに変更すると、すべてのdelimeter snd列のデータ設定が失われる – Walshie1987