Just nu i M3-nätverket
Jump to content

Hitta tidigaste och senaste datum


ZebulonM

Recommended Posts

Hej,

 

Har åkt på en klurig grejj. Försöker plocka första och sista datumet i en kolumn, men får inte ordning på hur jag ska hantera detta med min och max sökning. oavsett hur jag söker i kolumn, range eller array och hur jag deklarerar mina variabler får jag noll tillbaka.

har labbat med date, datevalue, mm. men kommer inte loss här.

 

   lastD = Application.WorksheetFunction.Max(myrange)
   firstD = Application.WorksheetFunction.Min(myrange)

så här ser datumen ut:

 

2009/04/17

2009/04/30

2009/05/22

2009/08/31

2009/09/22

2009/11/20

2009/12/30

2010/01/25

 

Kan givetvis loopa mig runt detta, men det känns som att det skall funka. Vad gör jag för fel? :blink:

 

Höpp!

Link to comment
Share on other sites

tja, det är inga datumvärden du har kanske? Är cellerna formaterade som datum eller är det text?

Link to comment
Share on other sites

Hmm, trodde jag hade postat i VBA. :unsure:

 

Hur som helst, kolumnen är i datumformat.

Ska man ändra properties till text eller general för kolumnen istället?

Link to comment
Share on other sites

Kolumnen formaterad som datum men är det verkligen datum? Kolla det. Om jag testar och skriver in några datum, säger

2009-01-01, 2009-01-02 osv så fungerar de formler du använder som de ska. Givet då att myrange verkligen är en referens till de cellerna du räkna på.

 

Med andra ord, några saker att kontrollera/testa

Skriv in nya datum

Kontrollera att det verkligen är datum (testa med former på bladet, exempelvis =ÅR(A1))

Kontrollera att myrange refererar dit den ska.

Link to comment
Share on other sites

Tror att jag har för dålig koll på hur man hanterar ranges och adresseringar runt detta, dvs det är sannolikt punkt tre som är problemet. :unsure:

Skriva in nya datum går bra.

Cellrefernser går bra.

"Myrange" refererar dit jag har tänkt mig när jag lägger till select.

Men, när jag tilldelar min variabel en range missar jag kanske något?

Jag bifogar ett exempel på datum och lite av dagens testning. Kolumner och range funkar när jag inte använder mig av variabel-tilldelning.

I exemplet jag testade med igår, så kör jag från en modul till en extern arbetsbok, vilket säkert kan innebära att jag går vilse i adresseringar. Det som var extra klurigt att jag lyckades få min och max att funka på data som inte var i datumformat... :(

date_range.xls

Link to comment
Share on other sites

Ah, du gör ett par klassiska fel

 

1: I VBA editorn, öppna menyn Verktyg -> Alternativ. Bocka där för att variabler alltid måste deklareras. Detta ger att VBA lägger till raden

Option Explicit

i början på varje NY modul. I existerande får du lägga till det själv. Typdeklarera bör man annars kan det gå fel och bli svårt att felsöka.

 

2: Om du gjort så hade raden

myrange = Sheet2.Range("B2:B12")

gett ett felvärde om du deklarerat myrange som en range

Dim myrange as Range

 

Range är ett objekt, för att tilldela ett objekt ett värde måste man använda Set

Set myrange = Sheet2....

utan Set kopieras värdena i cellen/cellerna till variabeln

 

Sådär, nu bör du få ordning på det.

 

Flyttar tråden till VBA dessutom.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...