Hej. Förmodar att du inte läst artikeln: Ska du använda Excel som en databas? Som jag nämnde så skall jag hämta info från Excel som kommer att fungera som en databas. Pelle har redan svarat på de första två. Hjälp med att hämta information från Excel via VB
Har inte riktigt snappat det här med att läsa och skriva till Excel från VB.
Finns det någon som kan ge mig lite information och kod hur jag skall göra vid följande tillfällen. Tala gärna också om hur variablerna är deklarerade för jag tror att det är mitt stöstaproblem.
Vad jag vill:
1. Få reda på hur många rader excelarket består av.
2. Få reda på hur många kolumner excelarket består av.
3. Söka upp rätt kolumn utifrån rubriktexten som står på rad 1
4. Från denna kolumnen sedan hämta nästa rads värde
5. Hämta ytterligare värden från samma rad men andra kolumner
6. Söka upp ett värde i en viss kolumn och sedan kunna skriva in nya värden i andra kolumner fast på samma rad.
Var det mycket ???
Hänvisa inte till Tips o tricks för där har jag hämtat allt men får fortfarande inte riktigt ihop det. Kanske finns det någon bra bok om detta ???
Mvh
AZ Sv: Hjälp med att hämta information från Excel via VB
http://www.pellesoft.nu/login/articles/asp/adoxls.asp
Här kan du alltså skriva "select count(*) from excelark" för att få reda på antal rader.
För kolumner kan du sedan använda
antal = rst.fields.count
För att söka:
select något from ark where något = "något"
/PelleSv: Hjälp med att hämta information från Excel via VB
du börjar med att sätta en referens till excelbiblioteket så att du kan
använda det.
//Emma
Följande egenskaper och attribut är bra att känna till:
<code>
du dimmar som följer:
dim app as excel.application -kan hålla i en instans av excel
dim ws as excel.workbook -kan hålla i en arbetsbok
dim blad as excel.worksheet -håller i ett blad
dim cell as excel.range -kan hålla i en cell
set app = skapaExcelObjekt
set ws = app.workbooks.add(xlWBATWorksheet)
set blad = ws.worksheets(1)
set cell = blad.range("a1")
Public Function skapaExcelObjekt() As Excel.Application
Dim app As Excel.Application
On Error Resume Next
Set app = GetObject(, "Excel.Application")
If Err.Number <> 0 Then Set app = CreateObject("Excel.Application")
Set skapaExcelObjekt = app
End FunctionSv: Hjälp med att hämta information från Excel via VB
Tack för ditt svar, det hjälpte mig lite på vägen men om du har tid och lust så visa gärna med lite kod och hänvisa till mina fem frågor.
Tack på förhand Sv: Hjälp med att hämta information från Excel via VB
Svaret på fråga 3 och 4 är att använda offset (en metod i ett range-objekt)
tex.
set cell = blad.range("a1")
set cell = hittaCell(cell, rubrik)
private function hittaCell(byref cell as excel.range, byval str as string, _
byval antalCol) As Excel.range
dim i as integer
i = 0
do
i = i+1
Loop while (not cell.offset(, i).text = str) And antalCol <= i
set hittacell = cell.offset(, i)
end function
för att hitta ett värde med antal rader använd offset(i) istället för offset
(,i) -> första värdet är nämligen radOffset det andra kolumnoffset
Finns program som använder just det här om du söker under filarean.
/Emma