2016-11-22 2 views
1

Wie ändert man dieses Skript, um nur in einer bestimmten Spalte zu suchen und zu ersetzen?Suchen und Ersetzen in einer bestimmten Excel-Spalte

Set xl = CreateObject("Excel.Application") 
    xl.Visible = True 
Set wb = xl.Workbooks.Open("C:\Users\test.xlsx") 
Set ws = wb.Sheets("Sheet1") 

Set objRange = ws.Range("Q1").End(xlDown).Select 
objRange.Replace "~*", "" 

Das aktuelle Skript gibt einen Fehler auf der Set objRange Linie. Das Ersetzen von * in dem gesamten Blatt würde mit Formeln interferieren.

+1

Ist das Excel VBA oder VBScript? Wenn ersteres, ändern Sie das Tag. Wenn Letzteres vorliegt, ist 'ActiveSheet' nicht in VBScript definiert. –

+0

Dies ist VBScript als Titel und Tag sagt. – user24

+0

Eine überraschend große Anzahl von Menschen verwechseln die Skriptsprache von Excel mit VBScript. Ihr Code verwendet 'ActiveSheet', was in VBA mehr Sinn macht als in VBScript. Wenn es VBScript ist, dann ist "ActiveSheet" nur eine andere Variable, die gesetzt werden müsste: 'Setze ActiveSheet = xlApp.ActiveSheet' (ersetze' xlApp' durch die Variable, die du für die Excel-Anwendung verwendest). Nicht ganz sicher, warum Sie versuchen, die Spalte auszuwählen. Bereiche müssen nicht ausgewählt werden, um durchsucht zu werden. –

Antwort

1

Sie denken zu kompliziert. Sagen Sie die Range Eigenschaft, dass Sie die gesamten Q Spalt wollen und rufen Sie die Replace Methode direkt auf dieses Range Objekt:

ws.Range("Q:Q").Replace "~*", "" 
+0

Danke Ansgar, dein Vorschlag hat perfekt funktioniert. – user24