2009-04-17 13 views
3

Ich habe ein Problem in XL in Bezug auf Neudefinition der Makro Zuordnung von Radio-Button, wenn das Quellarbeitsblatt auf ein Ziel Arbeitsblatt in einer neuen Arbeitsmappe kopiert wird.Neuzuweisung von Makro zu Befehl Schaltfläche beim Kopieren von Datei

Wenn ich auf das Optionsfeld im Zielarbeitsblatt klicke, versuche ich die Quellarbeitsmappe RATHER zu öffnen, um das Makro auszuführen, das der Schaltfläche zugewiesen ist.

Ich habe überprüft und die Destination Arbeitsmappe DOES tatsächlich eine identische Kopie des Makros, wie die ursprüngliche Quelle Arbeitsmappe. Durch Rechtsklick/Makro zuweisen auf dem Optionsfeld finde ich jedoch, dass der Pfad STILL auf die Quellarbeitsmappe/Arbeitsblatt zeigt.

Ich habe den folgenden Code beim Ausführen aus dem Arbeitsblatt Quelle versucht, aber es funktioniert nicht.

Code:

wbkDESTINATION.Sheets("1-Start").Select 
ActiveSheet.Shapes("Option Button 1").Select 
Selection.OnAction = "Sheet1.WEEKLY" 

Ich würde Ihren Vorschlag zu schätzen wissen, wie die letzte Selection.OnAction Code zu modifizieren, so dass XL weiß es aus dem Ziel Arbeitsblatt zu holen, statt zurück auf die ursprüngliche Quelle Arbeitsmappe springen.

Danke

Antwort

0

D'oh! Sie haben gerade festgestellt, dass Sie Formularsteuerelemente verwenden. Sie können Sie den gewünschten Vorgang, indem Sie explizit die Arbeitsmappe verweisen, wie dies gewährleisten nennen:

wbkDESTINATION.Sheets("1-Start").Select 
ActiveSheet.Shapes("Option Button 1").Select 
Selection.OnAction = ThisWorkbook.name & "!Sheet1.WEEKLY" 

Ich glaube, dass, obwohl die Kontrollen im Shapes-Auflistung erscheinen, sind sie tatsächlich OLE-Objekte mit ihren eigenen _CLICK Ereignisse in dem Arbeitsblatt Code Modul und können keine alternativen Prozeduren über onaction zugewiesen bekommen. Die Hilfe ist jedoch bei dieser wichtigen Unterscheidung vorhersehbar.

Ich habe dies beim Testen selbst bestätigt; Die Steuerelemente verweisen immer auf die _click -Ereignisse im übergeordneten Arbeitsblatt. Wie kopieren Sie das Arbeitsblatt? Ich habe versucht, die Benutzeroberfläche und programmatisch aus Standard-und Arbeitsblatt-Code-Module und hat jedes Mal die gleichen Ergebnisse.

Verwandte Themen