2017-01-26 5 views
0

状況:ISOブック2でマクロを実行するために、ブック1のActiveXボタンをプログラムする方法?

私は2つのワークブックがあります

  • ワークブック#1:オンラインデータリポジトリから設定ダウンロードしたデータ
  • ワークブック#2:マクロ
  • のマスターコレクション

Iをオンラインリポジトリからダウンロードされたデータセットをフォーマットするためのマクロのコレクションを構築しました。このデータセットは、ユーザーがデータをダウンロードする前に選択した機能に基づいて大きく異なる場合があります。私が作成したマクロはすべての可能なシナリオを網羅しています。したがって、[マクロの表示]ダイアログボックスを開くと、圧倒的な量が選択されます。効果的な命名規則を使用しても、エクセルで平均的な経験レベルが低いオーディエンスにとっては、あまりにも多くのことを見分けることができます。

エクスペリエンスを簡略化するために、ActiveXドロップダウンリストから選択した後、単に[移動]ボタンを押すだけで、プレーフィールドを水平にしたいと思っていました。

私は正常にドロップダウンを作成し、リストに値を設定し、 "Go"ボタンをアクティブにすると、選択によって特定のマクロが実行されます。

私の問題:

私はワークブック#1で実行するマクロを強制的にワークブック#2の「戻る」ボタンでサブコードを必要としています。

ご協力いただきましてありがとうございます。

+0

サンプルマクロを投稿してください。コードを実行する前に別のブックをアクティブにすることができます。コードを持つブック以外のブックの要素を参照できます。 – teylyn

+0

テイリン、私はそれが可能であることを知っています。私はそれに疑いがなかった。私が必要とするのは、より効率的な演奏のための実際のコードまたは代替の方法です。私は考えていない方法があると確信しています。 –

+0

CLARIFY:私がオンラインで見つけたほとんどのチュートリアルは、現在のワークブック上の非アクティブなブックに保存されたマクロを実行する方法を説明しています。それは私が必要とするものではありません。私はワークブック#1(アクティブなワークブック)からマクロをアクティブにする方法を知る必要がありますが、ワークブック#2(非アクティブなワークブック)で作業します。二次的な家に配線された家のライトスイッチのように。 –

答えて

0

マクロレコーダーからキューを取ることができます。

ここでは、1つのブックに格納され、別のブックのセルを操作するいくつかの基本的なコードです。

Sub Macro2() 
Dim mlib As Workbook 
Dim wb As Workbook 

Dim ms As Worksheet 
Dim ws As Worksheet 


Set mlib = ActiveWorkbook ' the file with the macros 
Set ms = mlib.Worksheets("Sheet1") 

' write into the macro workbook 
ms.Range("B3").FormulaR1C1 = "asdf" 

'activate another workbook that is already open and is called somefile.xlsx 
Windows("somefile.xlsx").Activate 

' set variables to reference that workbook 
Set wb = ActiveWorkbook 
Set ws = wb.Worksheets("Sheet1") 

' write something into somefile.xlsx 
ws.Range("B1").FormulaR1C1 = "copy me" 

'copy something within somefile.xlsx 
ws.Range("B1").Copy ws.Range("B2") 

' copy something from the macro workbook to the somefile workbook 
ms.Range("A1").Copy ws.Range("A5") 

' activate the macro workbook 

mlib.Activate 


End Sub 

私はあなた文脈で説明することができるので、私はいくつかのサンプルコードを求めました。

「他の」ファイルをマクロにハードコードするのではなく、それを特定する方法は約十数種類あります。あなたがもう少し情報を提供するのに悩まされることができれば、その細かいことも気にすることができます。

+0

ありがとう!私はそれを試してみましょう。フェーズ1を構築しましたが、これをフェーズ2として試してみましょう。 –

関連する問題