Tabelle: Zelleninhalt löschen/überschreiben

23/11/2008 - 15:33 von Susanne Wenzel | Report spam
Hallo NG,
mein Kampf mit Wordtabellen geht weiter...

Gibt es eine einfache Möglichkeit:
1. festzustellen, ob eine bestimmte Zelle leer ist (außerhalb der
Arraymethode:-)? Ich arbeite zur Zeit mit ...Characters.Count = 1, aber das
scheint mir eine Krücke zu sein.

2. den Zelleninhalt zu löschen, ohne dass gleich die ganze Zelle gelöscht
wird, ich will nur den *Inhalt* löschen (in der OH habe ich Delete
gefunden, aber weder ein Clear noch ein ClearContents noch ein Erase)?

3. einen vorhandenen Zelleninhalt mit einem anderen zu überschreiben?

Momentan kommt es mir so vor, als wàre das Handling von Wordtabellen
unendlich mühsam, als müsste ich quasi jedes einzelne Zeichen einzeln
anfassen...

Das kann es doch nicht sein!

Vielen Dank fürs Lesen und eventuelle Tips

Viele Grüße aus dem hohen flachen Norden Deutschlands
Susanne
Office XP, SP3, aktueller Patchstand
Windows 2000, SP4, aktueller Patchstand
KI-TRIPLE 2007
 

Lesen sie die antworten

#1 Lisa
23/11/2008 - 17:25 | Warnen spam
Hallo Susanne,

am besten packst Du die hàufig benötigten Tests in eigene Funktionen.

Gibt es eine einfache Möglichkeit:
1. festzustellen, ob eine bestimmte Zelle leer ist (außerhalb der
Arraymethode:-)? Ich arbeite zur Zeit mit ...Characters.Count = 1, aber das
scheint mir eine Krücke zu sein.



Dafür kann man nehmen:
_____
Function IstZelleLeer(cel As Word.Cell) As Boolean

IstZelleLeer = False
If Left$(cel.Range.Text, Len(cel.Range.Text) - 2) = "" Then
IstZelleLeer = True
End If

End Function
____
Aufruf bei Bedarf:
____
Sub Ausprob()

Debug.Print IstZelleLeer(ActiveDocument.Tables(1).Cell(3, 2))

End Sub
____

2. den Zelleninhalt zu löschen, ohne dass gleich die ganze Zelle gelöscht
wird, ich will nur den *Inhalt* löschen



Sub Zelle2()

Dim tbl As Word.Table
Dim cel As Word.Cell

Set tbl = ActiveDocument.Tables(1)
tbl.Cell(3, 2).Range.Text = "test test"
'Zelle befüllen

tbl.Cell(3, 2).Range.Text = ""
'Zelle leeren

End Sub

3. einen vorhandenen Zelleninhalt mit einem anderen zu überschreiben?



siehe bei 2. und könnte man natürlich auch in eine Funktion packen.

Um den Inhalt einer Zelle komfortabel auszulesen, auch eine solche
Funktion verwenden:
____
Public Function Zelleninhalt(cel As Word.Cell) As String
' gibt den Inhalt einer Zelle zurück

Zelleninhalt = Left$(cel.Range.Text, Len(cel.Range.Text) - 2)

End Function

Sub Ausprobieren()

Debug.Print Zelleninhalt(ActiveDocument.Tables(1).Cell(3, 2))

End Sub
_____

Ich hatte am Anfang auch Vorbehalte gegen Functions, die nur 1
Codezeile enthalten. Trotzdem verbessert eine Sammlung solcher
nützlicher Funktionen mit sprechenden Namen die Lesbarkeit und das
Handling des Codes doch betràchtlich.

Gruß
Lisa
____
http://www.schreibbuero-richter.de/vba.html

Ähnliche fragen