2017-08-04 1 views
0

Ich versuche, durch eine Reihe von Feldern in einem Excel-Dokument zu gehen, und wenn sie nicht leer sind, fügen Sie sie und die Werte der Zellen C und D zu einer Sammlung hinzu.
xlWB wird von der Sub, die diese anruft, übergeben.
Es erkennt den Wert, den ich für fein prüfe und i.Value gibt X zurück, was ich erwarte.
Aber i.Offset(0, -9).Value und i.Offset(0, -8).Value sind beide leer im Debug-Fenster zurückgegeben.VBA Offset.Value gibt für eine volle Zelle leer

Dim KogrRng As range 
Dim i As range 
Dim nField As String 
Dim nValue As String 
Dim fldCol As Collection 
Dim valCol As Collection 

Set KogrRng = xlWB.Sheets("KoGr").range("L22:L500") 

For Each i In KogrRng 
     If (i.Value = "") Then 
      'skip 
     Else 
      nField = xlWB.Sheets("KoGr").i.Offset(0, -9).Value & " " & xlWB.Sheets("KoGr").i.Offset(0, -8).Value 
      nValue = i.Value 
      Debug.Print (nField & ", " & nValue) 
      fldCol.ADD nField 
      valCol.ADD nValue 
     End If 
    Next i 

Vielen Dank für jede Hilfe!

+0

Was ist 'Kogrnng'? – pnuts

Antwort

0

sollte dies tun es

Dim KogrRng As Range 
Dim i As Range 
Dim nField As String 
Dim nValue As String 
Dim fldCol As Collection 
Dim valCol As Collection 

Set KogrRng = xlwb.Sheets("KoGr").Range("L22:L500") 

For Each i In KogrRng 
     If (i.Value = "") Then 
      'skip 
     Else 
      nField = i.Offset(0, -9).Value & " " & i.Offset(0, -8).Value 
      nValue = i.Value 
      Debug.Print (nField & ", " & nValue) 
      fldCol.Add nField 
      valCol.Add nValue 
     End If 
    Next i 

Offset -9 -8 und von Spalte L entsprechen Spalte C und D. qualifizierenden i mit xlwb.sheets ("KoGr") einen Fehler gibt, ist es bereits qualifiziert in der Definition von KoGrRng.

0

Bitte versuchen Sie den folgenden Code !.

Dim KogrRng As Range 
Dim i As Range 
Dim nField As String 
Dim nValue As String 
Dim fldCol As New Collection 
Dim valCol As New Collection 

Set KogrRng = Sheets("KoGr").Range("L22:L500") 

For Each i In KogrRng 
     If (i.Value = "") Then 
      'skip 
     Else 
      nField = i.Offset(0, -9).Value & " " & i.Offset(0, -8).Value 
      nValue = i.Value 
      Debug.Print (nField & ", " & nValue) 
      fldCol.Add nField 
      valCol.Add nValue 
     End If 
    Next i 
Verwandte Themen