Avatar billede lizardine Nybegynder
09. april 2005 - 13:20 Der er 12 kommentarer og
1 løsning

Excel cell Merge

Hej

Jeg sidder med et VB program der laver et udtræk fra et excel(xls) ark. Jeg ved dog ikke hvordan man finder de celler der er forenet. Har forsøgt mig med Range(1, 2).MergeCells = True, men der får jeg en fejl.

Håber der er nogen der kan hjælpe.

With aObjWorkSheet
                aLngRowCount = .UsedRange.Rows.Count
                aLngColCount = .UsedRange.Columns.Count
                                                           
                For aLngRow = 1 To aLngRowCount
                    If .Range(aLngRow, aLngCol).MergeCells = True Then 'HER FEJLER KODEN

                    End If
                    For aLngCol = 1 To aLngColCount
                        aStrCellVal = aStrCellVal & .Cells(aLngRow, aLngCol)
                    Next aLngCol
                   
                Next aLngRow
            End With
Avatar billede lizardine Nybegynder
09. april 2005 - 13:22 #1
Undskyld - Koden skal selvfølgelig se således ud:

With aObjWorkSheet
    aLngRowCount = .UsedRange.Rows.Count
    aLngColCount = .UsedRange.Columns.Count
                                                           
    For aLngRow = 1 To aLngRowCount
         
          For aLngCol = 1 To aLngColCount
              If .Range(aLngRow, aLngCol).MergeCells = True Then 'HER FEJLER KODEN

              End If
              aStrCellVal = aStrCellVal & .Cells(aLngRow, aLngCol)
          Next aLngCol
                   
    Next aLngRow
End With
Avatar billede mikkelk Nybegynder
09. april 2005 - 13:32 #2
prøv med:
  If .Cells(aLngRow, aLngCol).MergeCells = True Then 'HER FEJLER KODEN
Avatar billede mikkelk Nybegynder
09. april 2005 - 13:33 #3
Avatar billede mikkelk Nybegynder
09. april 2005 - 13:36 #4
.Cells(aLngRow, aLngCol).MergeCells vil så være true hvis cellen indgår i en forening af celler.
Avatar billede mikkelk Nybegynder
09. april 2005 - 16:41 #5
Virker det?
Avatar billede lizardine Nybegynder
09. april 2005 - 16:55 #6
mikkelk >> Har lige implementeret det og det virker rent faktisk :-) Mit eneste problem er bare hvordan man tjekker om to celler, hvor den ene er under den anden, er forenet. F.eks.

+--------------------------------+
|2 celler er forenet|            |
|Hvordan fanger jeg |------------+
|denne              |            |
+--------------------------------+
Avatar billede lizardine Nybegynder
09. april 2005 - 17:02 #7
Nå ja... har lige læst artiklen også kan man vel bare benytte range.
Avatar billede mikkelk Nybegynder
09. april 2005 - 17:03 #8
Ja, det er jo så et problem. Her skal du bruge Range for at tjekke at alle celler i den markerede range er forenede. Men i range skal du benytte syntaksen:
Range("A1:H8") istedet for tal - så den er lidt mere besværlig at have med at gøre.
Avatar billede lizardine Nybegynder
09. april 2005 - 17:18 #9
Tjaa men A1 og H8 kan vel findes vha. Name egenskaben. Fx. .Cells(aLngRow, aLngCol).Name... eller?

Uanset hvad, så mange tak for hjælpen og gider du at lægge et svar ;-)
Avatar billede mikkelk Nybegynder
09. april 2005 - 17:24 #10
Ja, det kan de.

Det var så lidt. Og et svar :-)
Avatar billede lizardine Nybegynder
09. april 2005 - 17:29 #11
Tak. Lige et sidste ting. Hvis jeg skriver .Cells(aLngRow, aLngCol).Name får jeg Application-defined or object-defined error. Nogle ideér?
Avatar billede lizardine Nybegynder
09. april 2005 - 17:31 #12
Skråt op med Name egenskaben, den skal ikke benyttes, man skriver blot .Cells(aLngRow, aLngCol) :-)
Avatar billede mikkelk Nybegynder
09. april 2005 - 17:37 #13
:-) Ok...ellers kan du bruge .Cells(aLngRow, aLngCol).Address
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester