Hoppa till huvudinnehåll

Hur får jag aktuell tidszon och visas i cellen i Excel?

Vet du hur du tar reda på vilken tidszon ett system är inställt på din dator? Här visar jag dig ett enkelt sätt att få ner det i Excel.

Få aktuell tidszon och visa i cellen med användardefinierad funktion


Få aktuell tidszon och visa i cellen med användardefinierad funktion

Följande användardefinierade funktion hjälper dig att visa systemets aktuella tidszon direkt i celler som behövs i Excel. Gör så här.

1. tryck på andra + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.

2. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna. Kopiera sedan VBA-koden nedan till modulfönstret.

VBA-kod: Få aktuell tidszon i Excel

Function GetTimeZoneAtPresent() As String
'Updated by Extendoffice 20180814
    Dim xObjIs, xObjI
On Error GoTo ER
    Set xObjIs = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * From Win32_TimeZone")
    If xObjIs.Count = 1 Then
        For Each xObjI In xObjIs
            If Len(xObjI.Caption) > 1 Then
                GetTimeZoneAtPresent = xObjI.Caption
                Exit Function
            Else
                GetTimeZoneAtPresent = "Null"
                Exit Function
            End If
        Next
    End If
ER:
    GetTimeZoneAtPresent = "Failed"
End Function

3. tryck på andra + Q för att avsluta Microsoft Visual Basic för applikationer fönster.

4. Välj en cell som du behöver för att visa tidszonen, skriv den här formeln: =GetTimeZoneAtPresent() och tryck på ange för att få tidszonsdetaljer. Se skärmdump:

Bästa kontorsproduktivitetsverktyg

Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50 + Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

kte-flik 201905


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
Comments (4)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How do I add a label to the output? so it says something like "Current TZ: (UTC-05:00) Eastern Time (US & Canada)" and not just "(UTC-05:00) Eastern Time (US & Canada)"
This comment was minimized by the moderator on the site
Hi ZMGIT,
The following VBA code can do you a favor. Please give it a try.

Function GetTimeZoneAtPresent() As String
'Updated by Extendoffice 20220402
Dim xObjIs, xObjI
On Error GoTo ER
Set xObjIs = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * From Win32_TimeZone")
If xObjIs.Count = 1 Then
For Each xObjI In xObjIs
If Len(xObjI.Caption) > 1 Then
GetTimeZoneAtPresent = "Current TZ:" & xObjI.Caption
Exit Function
Else
GetTimeZoneAtPresent = "Null"
Exit Function
End If
Next
End If
ER:
GetTimeZoneAtPresent = "Failed"
End Function
This comment was minimized by the moderator on the site
This macro is not taking daylight savings into account. I am in Continental Europe and the current time here is UTC+2, namely one hour earlier than London plus 1 hour for summer time. The function says "(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague" which would be correct during winter but not during summer
This comment was minimized by the moderator on the site
This worked brilliantly. I'm writing an IF statement off of this though. Do you have a list of the values that this formula could potentially display?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations