Frage : redigieren übertreffen den Gegenstand, der in PowerPoint über PowerPoint-Makro eingebettet wird

Hallo haben Experten,

I ein Powerpoint macro, dem Durchläufe durch jeden vorgewählten Gegenstand auf einem Dia, zum durchzuführen Verfahren auf Textkästen, auf Datenrasterfeldern in den Diagrammen und auf Wortkunstgegenständen „ersetzen“.

Now, muss ich die gleiche Art der Funktion auf einem eingebetteten Excel-Gegenstand durchführen. Gegeben dieses Makro in Powerpoint, erschwert es dieses eine Spitze für mich und ich kann was nicht durchaus herausfinden zu tun.

What ein bisschen Gegenstanddefinition tun ich muss tun, um in der Lage zu sein, das Äquivalent von durchzuführen:
1. Doppeltes klicken an den übertreffengegenstand „aktivieren ihn "
2. dann durchführen das Äquivalent von „ActiveCell.SpecialCells (xlLastCell) .Select“
3. dann hinausgehen über jede Zelle zwischen „A1“ an und „das xlLastCell“, zum einer ersetzenaufgabe wahrzunehmen und der Gültigkeitserklärung tests.

I zu tun haben den Code, den ich z.Z. verwende, den Code angebracht ich das Versuchen verursacht werde gesetzt zwischen den zwei Reihen von“ '************************ * "

Thanks für Ihre Hilfe bin!
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
Sub ChangeTagComplexe (StrRch () als Schnur, TypObj als ganze Zahl)
'mit vorgewählten Diagrammen, Makro läuft durch jedes Datenblatt jedes Diagramms und stellt fest, wieviele Reihen und Spalten im Diagramm eingeschlossen sind
'asteric Kette ist, wo wir die ersetzenfunktion addieren, um ersetzen auf jeder Zelle im Datenblatt des Diagramms durchzuführen
    
'TypObj = 1 = vorgewählte Gegenstände
'TypObj = 2 = alle Gegenstände
'TypObj = 3 = Diagramm
'TypObj = 4 = area per informazioni
'TypObj = 5 = wordart
'TypObj = 6 = Excel-Gegenstand

  'Gegenstandvariablen
    Schwaches oGraphChart als Gegenstand
    Schwaches oDatasheet als Gegenstand
    Schwaches oSh als Form

    'Verschiedene Variablen
    Schwaches lCol als lang
    Schwaches lRow als lang
    Schwaches LastCol als lang
    Schwaches LastRow als lang
    Schwaches X als lang
    Schwaches C, cm, CCC als lang
    Schwaches MaxRows als lang
    Schwaches MaxColumns als lang
    Schwaches Nom_Obj () als Schnur
    
    C = ActiveWindow.Selection.ShapeRange.Count

    ReDim Nom_Obj (C + 1)
    Für cm = 1 zu C
        Nom_Obj (cm) = ActiveWindow.Selection.ShapeRange (cm). Name
    Folgender cm
    
    Für cm = 1 zu C
    'für jeden Gegenstand auf Dia
        ActiveWindow.Selection.SlideRange.Shapes.SelectAll
        ActiveWindow.Selection.ShapeRange (Nom_Obj (cm)). Auserwählt
        oSh = ActiveWindow.Selection.ShapeRange einstellen (1)
        
        Wenn oSh.Type = msoEmbeddedOLEObject und (TypObj = 1 oder TypObj = 2) dann
            'datagrid im Diagramm redigieren
            MaxRows = 100
            MaxColumns = 100
        
            oGraphChart = oSh.OLEFormat.Object einstellen
            oDatasheet = oGraphChart.Application.datasheet einstellen
            Mit oDatasheet
                
                'Entdeckung LastRow
                Für X = 1 zu MaxRows
                    Wenn. Reihen (X).Include dann
                        LastRow = X
                    Beenden wenn
                Folgendes X
                'Entdeckung LastCol
                Für X = 1 zu MaxColumns
                    Wenn. Spalten (X).Include dann
                        LastCol = X
                    Beenden wenn
                Folgendes X
                'Die Daten ausfüllen
                Für lCol = 0 zu LastCol - 1
                   Für lRow = 0 zu LastRow - 1
                        Wenn lCol = 0 dann
                            Für CCC = 1 bis 25
                                Wenn CStr (StrRch (CCC, 1)) <> "" dann
                                    Wenn FrmTagRepl.CaseTrue = dann ausrichten
                                        . Strecke („0“ u. CStr (lRow)). Wert = ersetzen (. Strecke („0“ u. CStr (lRow)). Wert, StrRch (CCC, 1), StrRch (CCC, 2))
                                    Sonst
                                        . Strecke („0“ u. CStr (lRow)). Wert = ersetzen (. Strecke („0“ u. CStr (lRow)). Wert, StrRch (CCC, 1), StrRch (CCC, 2), vbTextCompare)
                                    Beenden wenn
                                Beenden wenn
                            Folgender CCC
                        Sonst
                            Für CCC = 1 bis 25
                                Wenn CStr (StrRch (CCC, 1)) <> "" dann
                                    Wenn FrmTagRepl.CaseTrue = dann ausrichten
                                        . Strecke (Chr (96 + lCol) u. CStr (lRow)). Wert = ersetzen (. Strecke (Chr (96 + lCol) u. CStr (lRow)). Wert, StrRch (CCC, 1), StrRch (CCC, 2))
                                    Sonst
                                        . Strecke (Chr (96 + lCol) u. CStr (lRow)). Wert = ersetzen (. Strecke (Chr (96 + lCol) u. CStr (lRow)). Wert, StrRch (CCC, 1), StrRch (CCC, 2), vbTextCompare)
                                    Beenden wenn
                                Beenden wenn
                            Folgender CCC
                        Beenden wenn
                   Folgendes lRow
                Folgendes lCol
            Ende mit
         oSh.OLEFormat.DoVerb Index: =1
         'ActiveWindow.Selection.SlideRange.Shapes.SelectAll
            ActivePresentation.Save
            'Ende redigieren datagrid im Diagramm
            oGraphChart.Application.Quit
        
        ElseIf (oSh.Type = msoTextBox oder oSh.Type = msoPlaceholder oder oSh.Type = 1) und (TypObj = 1 oder TypObj = 3) dann
            'Textkasten redigieren
            Für CCC = 1 bis 25
                Wenn CStr (StrRch (CCC, 1)) <> "" dann
                    Wenn FrmTagRepl.CaseTrue = dann ausrichten
                        oSh.TextFrame.TextRange.Text = ersetzen (oSh.TextFrame.TextRange.Text, StrRch (CCC, 1), StrRch (CCC, 2))
                    Sonst
                        oSh.TextFrame.TextRange.Text = ersetzen (oSh.TextFrame.TextRange.Text, StrRch (CCC, 1), StrRch (CCC, 2), vbTextCompare)
                    Beenden wenn
                Beenden wenn
            Folgender CCC
        ElseIf oSh.Type = msoTextEffect und (TypObj = 1 oder TypObj = 4) dann
            Für CCC = 1 bis 25
                Wenn CStr (StrRch (CCC, 1)) <> "" dann
                    Wenn FrmTagRepl.CaseTrue = dann ausrichten
                        oSh.TextEffect.Text = ersetzen (oSh.TextEffect.Text, StrRch (CCC, 1), StrRch (CCC, 2))
                    Sonst
                        oSh.TextEffect.Text = ersetzen (oSh.TextEffect.Text, StrRch (CCC, 1), StrRch (CCC, 2), vbTextCompare)
                    Beenden wenn
                Beenden wenn
            Folgender CCC
        ElseIf oSh.Type = 6 und (TypObj = 1) dann
            '*********************************************
            'kodieren eingebetteten Excel-Gegenstand redigieren hier gemusst
            '1: die letzte Spalte und die Reihe des aktiven Blattes feststellen
            '2: über jede Zelle hinausgehen und durchführen ersetzen Funktion
            '*********************************************
        Beenden wenn
    Folgender cm

Enden-Unterseeboot

Antwort : redigieren übertreffen den Gegenstand, der in PowerPoint über PowerPoint-Makro eingebettet wird

Der oben genannte Code ist geändert worden, um die letzte Spalte und die letzte Reihe im übertreffenblatt zu finden. Aber ich könnte das defination für below Variable/Gegenstand innerhalb des Codes nicht finden, den Sie zur Verfügung gestellt haben.

FrmTagRepl

Rest des Codes wird unten zur Verfügung gestellt:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
Code, zum der letzten Spalte und der letzten Reihe zu finden:
MaxRows = oSh.OLEFormat.Object.Sheets (1).Cells (oSh.OLEFormat.Object.Sheets (1).Cells.Rows.Count, 1).End (xlUp). Reihe
MaxColumns = oSh.OLEFormat.Object.Sheets (1).Cells (1, oSh.OLEFormat.Object.Sheets (1).Cells.Columns.Count). Ende (xlToLeft). Spalte
LastCellAddress = oSh.OLEFormat.Object.Sheets (1).Cells.SpecialCells (xlCellTypeLastCell). Adresse

'*************************************************
'* der Code, zum von Werten auf Embeded zu ersetzen übertreffen Blatt *  
'*************************************************
Schwaches TrgetRange als Excel.Range

Schwaches TrgetRange als Excel.Range
TrgetRange = oSh.OLEFormat.Object.Sheets (1).Range („A1 einstellen: “ U. LastCellAddress)

Für jede Zelle in TrgetRange
    Cell.Value = „der Wert, den Sie durch ersetzen möchten!“
Zunächst
Weitere Lösungen  
 
programming4us programming4us