私はVBAの新機能を使用しているため、インターネットからコピーした後はほとんどのコーディングが記録または変更されます。ブックの名前を変更した後でvbaが動作しない
実行した手順を記録した後、マクロがファイル名とシート名を記録することに気付きました。
したがって、記録されたマクロの名前と似ていないファイルを開くと、マクロが機能しません。
たとえば、ファイルBはマクロに登録されている名前ですが、今はファイルCでマクロプログラムを実行したいが失敗します。
私はそれを回避できる方法はありますか?
Sub trial()
Dim wb, wb2, wb3 As Workbook
Dim fn As String
Set wb = ActiveWorkbook
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
If .Show = -1 Then
fn = .SelectedItems(1)
Set wb2 = Workbooks.Open(fn)
Else
MsgBox "You cancel the process."
End If
End With
Dim SheetName As String
'this is the place i would like to edit
Windows("SPC July BPW341CL - Copy.csv").Activate
Sheets("SPC July BPW341CL - Copy").Select
Sheets("SPC July BPW341CL - Copy").copy after:=Workbooks(_
"New Microsoft Excel Worksheet.xlsm").Sheets(4)
Sheets("SPC July BPW341CL - Copy").Activate
SheetName = Format(Date, "yyyymmdd") 'Change the format as per your requirement
ActiveSheet.Name = SheetName
Set wb3 = Application.ActiveWorkbook
Sheets("Summary").Activate
Range("A1").Select
For Each ws In wb3.Worksheets
If ws.Name <> "Compare to RGB" And ws.Name <> "Summary" Then
For i = 1 To 5
Selection.Value = ws.Name
Selection.Offset(0, 1).Select
Next
End If
Next
End Sub
ありがとう、答えは@イングランドですが、私はまだ私のVBAで何を変えるべきかはっきりしていません。私はfnというリファレンスを作ったと言いますが、それはそうですか?上記のVBAのすべての名前を代わりにfnで置き換えることが可能ですか?たとえば、 /Windows( "SPC July BPW341CL - Copy.csv")。/をアクティブにする/ /Windows("fn").Activate/に置き換えられますか? 今のところ、ファイル名「SPC July BPW341CL - Copy.csv」を変更して、異なる名前の他のブックをマクロでも実行できるようにしたいだけです。 – Fong
マクロで何をしたいか説明してください。ユーザーがExcelファイルを選択できるようにしたら、何ができますか? – ainwood
ファイルAはデータをコンパイルするためのもので、ファイルBをZに変換するもので、さらには生データです。私がする必要があるのは、ユーザーが入力ファイル(File B to Z)を選択し、その中のすべてのデータをFile Aにコピーして、それらを1つのファイルで一緒にコンパイルすることです。そうすることで、生データに応じてファイル名が時々刻々と変わるので、すべてのファイル名をリストすることはできません。だから、私は方法でそれをプログラムすることができますので、ユーザーはファイル名を非常に一度変更するのではなく、任意のファイルを選択することができます。 – Fong