AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Excel - Zellenabfrage

Ein Thema von aurikel_Max · begonnen am 9. Jan 2010 · letzter Beitrag vom 10. Jan 2010
Antwort Antwort
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#1

Excel - Zellenabfrage

  Alt 9. Jan 2010, 21:46
Guten Abend Delphi-Praxis-Community,

ich brauche Eure Hilfe bei dem folgendem Problem:

Ich möchte eine Komma-Zahl in eine Excel-Tabelle speichern, dafür geht das Programm an eine bestimmte Stelle in der Excel-Tabelle und beginnt von da aus in y-Richtung nach einer freien Zelle zu suchen.

Mein Code sieht so aus (es geht bestimmt eleganter, aber ...):

Delphi-Quellcode:
  row := 4; // y
  column := 3; // x
  x := 1;
  while NOT(x = 0) do
  begin
    if ((excel.Cells[row, column].Value) = '') then
    begin
      x := 0;
    end
    else
    begin
      row := row + 1;
    end;
  end;
Das Problem ist, dass ich folgende Fehlermeldung bekomme, da die Zellen mit den Zahlen gefüllt sind: Could not convert variant of type (UnicodeString) into type (Double). -> deswegen muss ich das (excel.Cells[row, column].Value) vorher noch umwandeln?

Liebe Grüße.
Max
  Mit Zitat antworten Zitat
anubis2k5

Registriert seit: 6. Jul 2008
13 Beiträge
 
#2

Re: Excel - Zellenabfrage

  Alt 10. Jan 2010, 05:19
Wenn ich richtig liege, prüft der Code ob es ein leerer String ist. Vielleicht solltest du prüfen ob eine Zahl enthalten ist. Alternativ kannst du vielleicht noch die Länge des zurück gegebenen Strings prüfen (mittels Length())
  Mit Zitat antworten Zitat
HiWieGehts

Registriert seit: 19. Aug 2005
101 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Excel - Zellenabfrage

  Alt 10. Jan 2010, 10:05
Hallo,

habe mir die Mühe gemacht und auf Delphi-Praxis nach <excel zelle leer> gesucht. Unter anderem wurde ein Beitrag mit dem Titel <Leere Excel-Zelle> gefunden. Der schaut ganz gut aus und dürfte die Lösung für dein Problem bieten.

LG
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#4

Re: Excel - Zellenabfrage

  Alt 10. Jan 2010, 10:28
Zitat von HiWieGehts:
Hallo,

habe mir die Mühe gemacht und auf Delphi-Praxis nach <excel zelle leer> gesucht. Unter anderem wurde ein Beitrag mit dem Titel <Leere Excel-Zelle> gefunden. Der schaut ganz gut aus und dürfte die Lösung für dein Problem bieten.

LG
Erstmal danke ich Euch beiden für eure Antwort.

Danach möchte ich auf HiWieGehts eingehen:

Die Boardsuche habe ich zwar auch benutzt, aber wohl einen unpassenderen Begriff genommen ... nachdem ich deinen Begriff benutzt habe, habe ich folgendes gefunden:

Zitat von Chemiker:
Hallo JPSelter,

versuch es mal mit:

if Excel.cells[i,j].value = ‘’ then In Excel gibt es die empty-Konstante auf der man prüfen kann.

Bis bald Chemiker
Wobei mir ‘’ als fehlerhaft angezeigt wurde und beim Compilieren einen Fehler ergab. Deshalb habe ich anubis2k5's Lösungsansatz benutzt, der auch tadellos funktioniert, Dankeschön euch beiden!


    if Length(Excel.cells[row,column]) = 0 then So sieht es dann jetzt aus

Liebe Grüße. (jetzt eine Runde joggen gehen und danach weiter arbeiten )
Max
  Mit Zitat antworten Zitat
anubis2k5

Registriert seit: 6. Jul 2008
13 Beiträge
 
#5

Re: Excel - Zellenabfrage

  Alt 10. Jan 2010, 17:00
Hallo!

Zitat:
if Excel.cells[i,j].value = ‘’ then
wird zu:

if Excel.cells[i,j].value = 'then
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#6

Re: Excel - Zellenabfrage

  Alt 10. Jan 2010, 17:33
Zitat von anubis2k5:
Hallo!

Zitat:
if Excel.cells[i,j].value = ‘’ then
wird zu:

if Excel.cells[i,j].value = 'then
Das entspricht meinem alten fehlerhaften Quellcode, das Problem:
Zitat:
Could not convert variant of type (UnicodeString) into type (Double)
.

Die Überprüfung anhand der Länge ist besser und mein (kleines) Programm klappt auch .

Max
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Excel - Zellenabfrage

  Alt 10. Jan 2010, 17:39
Hallo,
Excel.cells[i,j].value ist hier vom Typ OleVariant.
Was liegt da näher als eine Umwandlung in einen String und anschließende
Prüfung auf ''

if VarToStr(Excel.cells[i,j].value) = 'then geht immer
I come from outer space to save the human race
  Mit Zitat antworten Zitat
aurikel_Max

Registriert seit: 9. Okt 2009
86 Beiträge
 
#8

Re: Excel - Zellenabfrage

  Alt 10. Jan 2010, 17:49
Zitat von Jens Schumann:
Hallo,
Excel.cells[i,j].value ist hier vom Typ OleVariant.
Was liegt da näher als eine Umwandlung in einen String und anschließende
Prüfung auf ''

if VarToStr(Excel.cells[i,j].value) = 'then geht immer
Genau das hab ich gesucht, bevor ich den alternativen Lösungsansatz mit der Länge erhalten hab, ich wusste nicht genau, wie ich den Wert (Value) umwandeln muss. (wobei ich es bei der Länge belassen werde, danke ich auch Dir für die Hilfe!)
Max
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz