2017-03-18 9 views
0

私はバンド内のさまざまなセットリストをExcelで手動で管理しています。私はそれをより簡単にするために素敵なVBAフロントエンドを書くことに決めました。 setlist excelファイルはすべてのバンドのメンバーとサウンドチームのDropboxで共有されているので、コードを書くときにsetlist.xlsxをnewsetlist.xlsmにコピーしました。コードを「終了」した後、元のsetlist.xlsxファイルをアーカイブし、newsetlist.xlsmという名前をsetlist.xlsmに変更しました。excel-vbaが古いファイル名を開く

しかし、何らかの理由で最初のuserformを起動すると、Excelはmewsetlist.xlsmを開こうとしますが、それはもはや存在しません。私はすべてのコードを検索し、明示的にnewsetlist.xlsmを開こうとする場所を見つけることができません。事実、vbaコードは、ワークブックが開いているという前提の下で実行されています。

非常に感謝しています。

+0

はあなたのコードを投稿することができます。いくつかのマクロを記録した場合、その名前はどこかにハードコードされているかもしれません。 – MatthewD

+1

元のファイルにリンクできるワークシートボタンがありますか? –

+0

"newsetlist"を編集/検索する場合、VBEウィンドウ( "単語全体のみ検索"無効)から実行し、 "現在のプロジェクト"の名前を見つけられない場合は、明示的でも暗黙的でもない。したがって、言及はワークシートに記載されていなければなりません。まずそこの数式を見てから、リンクを見てください([データ]タブの[外部データの取得])。はい、上記のようにシート上のActiveXコントロールも見てください。 – Variatus

答えて

0

私はブックのモジュール2に2行のコードがありました。最初はサブセットと呼ばれ、 "Blank"という名前のワークシートを探しました。これを使ってセットを作成し、終わったら名前を変更しました。これは未完成の仕事の残りの部分を、それがあればそれを削除することによって浄化するだけです。 2行目は、マスターのuserformを表しています。そのマクロをクイックアクセスツールバーに配置しました。それは、古いファイル名の後にExcelを移動させたものをクリックしていました。

私は新しいモジュールを追加し、新しいサブを書き、2つの行をコピーして貼り付け、クイックアクセスツールバーから古いマクロを削除し、新しいマクロをそこに置き、それを開こうとしません古いファイル私が考えることができるのは、Excelはクイックアクセスツールバーのマクロアイコンにファイル名の古い名前を関連付けていたということです。おそらく、ツールバーからそのマクロを削除し、それを新しいファイルに再追加するだけでした。

あなたが質問しただけで、ここにコードがあります。モジュール3で今


サブsetManagementStartup

Call delBlankSheet 

MasterScreen.Show 

エンドサブ ます。Public Sub delBlankSheet()

Dim blankExists As Boolean 

blankExists = False 

For Each ws In ThisWorkbook.Sheets 

    If ws.Name = "Blank" Then 
     blankExists = True 
    End If 

Next ws 

If blankExists Then 
    Application.DisplayAlerts = False 

    ThisWorkbook.Sheets("Blank").Delete 

    Application.DisplayAlerts = True 

End If 

End Subの