[excel vba] range probleem

Pagina: 1
Acties:

  • Tom-my
  • Registratie: November 2000
  • Laatst online: 19-06 09:25

Tom-my

w03iz0rz

Topicstarter
Probeer hier een range door te lopen van een extern ingeladen workbook:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 Set fs = CreateObject("Scripting.FileSystemObject")
    filebestaat = fs.FileExists(eclfile)
   If Not filebestaat Then
       MsgBox ("SMALL.XLS niet gevonden, bewerking stopt")
       Exit Sub 'stop procedure aangezien smart.xls niet gevonden is
    End If
    
    '
    'verwerk alle regels in excel sheet eclfile
    '-----
    Set tempworkbook = Application.Workbooks.Open(eclfile)
    Dim werksheet As Worksheet
    Dim testx As String

    werksheet = tempworkbook.Worksheets("SMALL").Range("a")
    
    testx = werksheet.Rows.Count
    MsgBox (testx)


alleen krijg ik steeds een foutmelding op die range :S. Ben geen vba expert, normaal alleen php en delphi, maar ik wil die werksheet, regel voor regel door lopen en normaal doe ik dan eerst een count van alles wat er is, en vervolgens een loop van elke 'regel'.

Hoe doe ik dat hier? :? krijg het maar niet voor elkaar, nu krijg ik een error op die range dat dat niet mag ofzo, maar als ik range("a1:a100000") opgeef dan is mn count ook 100000

"Then there was the man who drowned crossing a stream with an average depth of six inches."


  • Lister
  • Registratie: September 2001
  • Laatst online: 15-02-2022
Je hebt werksheet als Worksheet gedefinieerd maar daar probeer je een range in te zetten en dat kan niet.

En om te kijken hoeveel rijen er gebruikt zijn kun je het UsedRange object gebruiken alhoewel dat ook niet zaligmakend is. Rijen die ooit ingevuld zijn maar niet goed worden verwijderd worden dan ook nog meegeteld.

Dan wordt het zoiets:
code:
1
2
3
4
5
6
7
8
    Set tempworkbook = Application.Workbooks.Open(eclfile)
    Dim werksheet As Worksheet
    Dim lngAantal As Long

   Set werksheet = tempworkbook.Worksheets("SMALL")
    
    lngAantal = werksheet.UsedRange.Rows.Count
    MsgBox (lngAantal)


Persoonlijk doorloop ik altijd alle rijen net zolang totdat de eerste kolom leeg is, maar dan moet die kolom wel altijd gevuld zijn in een record, dus het is afhankelijk van je soort data.