Hej! Det absolut lättaste sättet att göra detta är att starta excel, importera det du vill ha och sedan spela in ett makro och studera den kod som genereras (använd F11). Då får man mycket snabbt reda på enkla grejer som format och liknande. Hej NiklasLite formathantering med VB till Excel
Jag exporterar en listview till ett excel ark och nu villja ändra följande i excelarket
1. Jag vill ändra formatet i en column till nummeriska värden
2. Jag vill ändra formatet i en column till att visa procent
3. Jag vill att alla kolomner inom intervallet skall autoanpass bredden beroende på textens bredd
3. Hur drar jag linjer... ex mellan cell a3: o3
4. Hur fyller man i färg i ett intervall med celler.
5. I mitt exempel skapas en 4:sida och en extra bok.. Hur skippar jag det utan använder sida1 i bok 1, som jag då skapar
Jag har försökt att applicera exempel från tips och tricks mm, men jag reder inte ut det. Bifogar en del av min kod så ni kan se hur jag skapar mitt objekt
<code>
' Skapa en excelbok och ett excelark i den
Set excBook = excApp.Workbooks.Add
Set excSheet = excBook.Worksheets.Add
excSheet.Range("a3", "p3").Font.Bold = True
' Lägg ut rubriker
With excSheet
.Range("A1").Value = "PLATS:" & Label3.Caption
.Range("A3").Value = "ID"
.Range("B3").Value = "Tid"
.Range("C3").Value = "Grupp"
.Range("D3").Value = "P-ID"
.Range("E3").Value = "Produkt"
.Range("F3").Value = "Antal"
.Range("G3").Value = "Kundnr"
.Range("H3").Value = "Pris"
.Range("I3").Value = "Betald"
.Range("J3").Value = "Inpris"
.Range("K3").Value = "Ink moms"
.Range("L3").Value = "Vinst(%)"
.Range("M3").Value = "Kod"
.Range("N3").Value = "Höjd"
.Range("O3").Value = "Bredd"
.Range("P3").Value = "m2"
End With
</code>
/phinalaSv: Lite formathantering med VB till Excel
T.ex.
<b>>1. Jag vill ändra formatet i en column till nummeriska värden</b>
Column(nummer eller bokstav).NumberFormat = "0"
Samma grej med alla andra rena formatgrejer.
<b>>3. Hur drar jag linjer... ex mellan cell a3: o3</b>
Vad menar du?
En kantlinje? En pil? Var ska den börja, var skall den sluta (olika ställen på rutorna)?
<b>>5. I mitt exempel skapas en 4:sida och en extra bok.. Hur skippar jag det utan använder sida1 i bok 1, som jag då skapar </b>
Det är inte så konstigt, du använder ju "workbooks.add"...
Frågan är vilken metod du bör använda. Vill du verkligen inte öppna en ny arbetsbok?
Om Excel redan är öppet och det ligger en öppen bok redan så riskerar du att du förstör den.
Att inte skapa ett nytt ark är inget konstigt (och vill du inte skapa ny bok så kan du göra på samma sätt):
Set excSheet = excBook.Worksheets(1)Sv: Lite formathantering med VB till Excel
Ok... Jag skall kolla lite på makrona
....Jag menar en kantlinje
Jag återkommer och berättar hur det går
/phinala