Note: The other languages of the website are Google-translated. Back to English

Hur räknar man totalt antal klick i en angiven cell i Excel?

Den här artikeln talar om att räkna totalt antal klick i en specifik cell i Excel.

Räkna totalt antal klick i en angiven cell med VBA-kod


Räkna totalt antal klick i en angiven cell med VBA-kod

Gör så här för att räkna totalt antal klick i en viss cell i Excel.

1. I kalkylbladet innehåller cellen som du behöver för att räkna dess totala antal klick, högerklicka på arkfliken och klicka sedan på Visa kod från snabbmenyn.

2. I Microsoft Visual Basic för applikationer kopiera och klistra in under VBA-koden i kodfönstret.

VBA-kod: Räkna totalt antal klick i en angiven cell i Excel

Public xRgS, xRgD As Range
Public xNum As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
    Set xRgS = Range("E2")
    If xRgS Is Nothing Then Exit Sub
    Set xRgD = Range("H2")
    If xRgD Is Nothing Then Exit Sub
    If Intersect(xRgS, Target) Is Nothing Then Exit Sub
    xNum = xNum + 1
    xRgD.Value = xNum
End Sub

Anmärkningar: I koden är E2 cellen du behöver för att räkna dess totala klick, och H2 är utgångscellen för räkningen. Ändra dem efter behov.

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

Från och med nu, när du klickar på cell E2 i det angivna kalkylbladet, fylls de totala klickarna automatiskt i cell H2 enligt nedanstående skärmdump. Om du till exempel klickar på cellen E2 fem gånger kommer nummer 5 att visas i cell H5.


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
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!
officetab botten
Sortera kommentarer efter
Kommentarer (29)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Hur kan du "återställa" räknaren?
Denna kommentar minimerades av moderatoren på webbplatsen
Kära Dennis,
Lägg till nedanstående VBA-kod i slutet av originalkoden. Varje gång du kör den här koden kommer räkningen att återställas till 0. Tack för din kommentar.

Sub ClearCount()
xRgD.Value = ""
xNum = 0
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Kristall,

Kan du ange hela VBA-koden - för detta? också hur skulle jag tillämpa det på en enda rad - var och en behöver sin egen räknare?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Den fullständiga VBA-koden är som följer. Om du vill återställa räknaren, kör den andra VBA-koden. För att applicera koden på en enda rad, kan tyvärr inte hjälpa dig ännu.

'Den första VBA
Public xRgS, xRgD As Range
Public xNum As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Om Target.Cells.Count > 1 Avsluta Sub
Ställ in xRgS = Range("E2")
Om xRgS är ingenting, avsluta Sub
Ställ in xRgD = Range("H2")
Om xRgD är ingenting, avsluta Sub
Om Intersect(xRgS, Target) är ingenting, avsluta Sub
xNum = xNum + 1
xRgD.Value = xNum
End Sub
'Den andra VBA
Sub ClearCount()
xRgD.Value = ""
xNum = 0
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för koden, mycket användbar.
Jag är inte en programmerare och jag skulle vilja veta hur man utökar denna process till varje rad. Det vill säga inte bara E2>H2 utan även E3>H3, E4>H4, och så vidare.
Finns det en kod för detta?


Tack på förhand!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Guido,

VBA-koden nedan kan hjälpa dig att lösa problemet. Gör ett försök. Tack för din kommentar.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRgArray som variant
Dim xNum
Dim xStrR, xStrS, xStrD Som sträng
Dim xRgS, xRgD As Range

Dim xFNum As Long
xRgArray = Array("E2,H2", "E3,H3", "E4,H4", "E5,H5", "E6,H6")
On Error Resume Next
Om Target.Cells.count > 1 Avsluta Sub
För xFNum = LBound(xRgArray) Till UBound(xRgArray)
xStrR = xRgArray(xFNum)
xStrS = ""
xStrS = Vänster(xStrR, 2)
xStrD = ""
xStrD = Höger(xStrR, 2)
Ställ in xRgS = Ingenting
Ställ in xRgS = Range(xStrS)
Om Typnamn(xRgS) <> "Ingenting" Då
Ställ in xRgD = Ingenting
Ställ in xRgD = Range(xStrD)
Om Typnamn(xRgD) <> "Ingenting" Då
Om Typnamn(Skärning(xRgS, Mål)) <> "Ingenting" Då
xRgD.Value = xRgD.Value + 1
End If
End If
End If
Nästa
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Tack för detta. Jag försökte och det fungerade, men det fungerade bara tills ett visst antal celler, hur kan vi förlänga den här koden till slutet av cellerna? till exempel skriver jag in den här koden nedan och den fungerar bara till "G9,G9". Tack


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRgArray som variant
Dim xNum
Dim xStrR, xStrS, xStrD Som sträng
Dim xRgS, xRgD As Range

Dim xFNum As Long
xRgArray = Array("C4,C4", "D4,D4", "E4,E4", "F4,F4", "G4,G4", "C6,C6", "D6,D6", "E6,E6 ", "F6,F6", "G6,G6", "C7,C7", "D7,D7", "E7,E7", "F7,F7", "G7,G7", "C8,C8", "D8,D8", "E8,E8", "F8,F8", "G8,G8", "C9,C9", "D9,D9", "E9,E9", "F9,F9", "G9 ,G9", "C10,C10", "D10,D10", "E10,E10", "F10,F10", "G10,G10", "C11,C11", "D11,D11", "E11,E11 ", "F11,F11", "G11,G11", "C14,C14", "D14,D14", "E14,E14", "F14,F14", "G14,G14", "C15,C15", "D15,D15", "E15,E15", "F15,F15", "G15,G15", "C16,C16", "D16,D16", "E16,E16", "F16,F16", "G16 ,G16", "C17,C17", "D17,D17", "E17,E17", "F17,F17", "G17,G17", "C18,C18", "D18,D18", "E18,E18 ", "F18,F18", "G18,G18", "C20,C20", "D20,D20", "E20,E20", "F20,F20", "G20,G20")
On Error Resume Next
Om Target.Cells.count > 1 Avsluta Sub
För xFNum = LBound(xRgArray) Till UBound(xRgArray)
xStrR = xRgArray(xFNum)
xStrS = ""
xStrS = Vänster(xStrR, 2)
xStrD = ""
xStrD = Höger(xStrR, 2)
Ställ in xRgS = Ingenting
Ställ in xRgS = Range(xStrS)
Om Typnamn(xRgS) <> "Ingenting" Då
Ställ in xRgD = Ingenting
Ställ in xRgD = Range(xStrD)
Om Typnamn(xRgD) <> "Ingenting" Då
Om Typnamn(Skärning(xRgS, Mål)) <> "Ingenting" Då
xRgD.Value = xRgD.Value + 1
End If
End If
End If
Nästa
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Ruth,
Koden är svår att optimera för att möta dina behov. Förlåt för det.
Denna kommentar minimerades av moderatoren på webbplatsen
koden läser inte tvåsiffrigt cellnummer dvs. C10 varför är detta tack
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Crystal. Jag har provat den här formeln, men den rapporterar bara genom rad 9. Jag kommer inte att räkna rad 10 och längre. Till exempel har jag justerat ovanstående formel för att räkna enskilda klick i A4, för att rapportera till E5; A5 för att rapportera till E5; A6 för att rapportera till E6, etc. Totalt intervall är A4 till A17, total rapportering är E4 till E17. Kan du hjälpa till? Här är den modifierade koden jag använde.



Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRgArray som variant
Dim xNum
Dim xStrR, xStrS, xStrD Som sträng
Dim xRgS, xRgD As Range

Dim xFNum As Long
xRgArray = Array("A4,E4", "A5,E5", "A6,E6", "A7,E7", "A8,E8", "A9,E9", "A10,E10", "A11,E11 ", "A12,E12", "A13,E13", "A14,E14", "A15,E15", "A16,E16", "A17,E17")
On Error Resume Next
Om Target.Cells.Count > 1 Avsluta Sub
För xFNum = LBound(xRgArray) Till UBound(xRgArray)
xStrR = xRgArray(xFNum)
xStrS = ""
xStrS = Vänster(xStrR, 2)
xStrD = ""
xStrD = Höger(xStrR, 2)
Ställ in xRgS = Ingenting
Ställ in xRgS = Range(xStrS)
Om Typnamn(xRgS) <> "Ingenting" Då
Ställ in xRgD = Ingenting
Ställ in xRgD = Range(xStrD)
Om Typnamn(xRgD) <> "Ingenting" Då
Om Typnamn(Skärning(xRgS, Mål)) <> "Ingenting" Då
xRgD.Value = xRgD.Value + 1
End If
End If
End If
Nästa
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej JT,
Tack för din feedback. Det är något fel i den ursprungliga koden. Du kan prova följande nya kod.
Siffran 4 i denna lögn: Set xRight = Target.Offset(0, 4) betyder att 4 kolumner ska förskjutas till höger om startreferensen (startreferensen är A4:A17). Efter förskjutning av 4 kolumner till höger kommer resultaten att matas ut i E4:E17.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated by Extendoffice 20221010
    Dim xRight As Range

    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub
    If Intersect(Target, Range("A4:A17")) Is Nothing Then Exit Sub
    Set xRight = Target.Offset(0, 4)
    If TypeName(xRight.Value) = "Double" Then
        xRight.Value = xRight.Value + 1
    ElseIf TypeName(xRight.Value) = "Empty" Then
        xRight.Value = 1
    End If

End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, finns det ett sätt att backa räkningen för vilket nummer jag vill ha? Till exempel: Jag hade gjort 5 klick, men jag ville bara ha 3. Så jag ändrar numret i cellen till 3, och när jag klickar igen fortsätter det från 3.
Tack för koden!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Jag kan tyvärr inte hjälpa dig med detta, välkommen att ställa frågor om Excel till vårt forum: https://www.extendoffice.com/forum.html. Du kommer att få mer Excel-stöd från våra professionella eller andra Excel-fans.
Denna kommentar minimerades av moderatoren på webbplatsen
Hallå
Hay alguna manera de programar el conteo de clicks de acuerdo a la fecha, es decir programar varias celdas para que cuenten con la fecha del día?
Denna kommentar minimerades av moderatoren på webbplatsen
Kan du ge en kod som tillåter att räkna klick från A2, B2-celler till A14, B14-celler. Tack på förhand.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Barbara
Menar du att räkna det totala antalet klick i intervallet A2:B14? Eller klick för varje cell i intervallet A2:B14?
Denna kommentar minimerades av moderatoren på webbplatsen
Vad är det nu? Hur återställer man poängen?
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
Om du vill återställa räknaren, lägg till nedanstående VBA-kod i slutet av den ursprungliga koden som tillhandahålls ovan och kör den sedan.

Sub ClearCount()
xRgD.Value = ""
xNum = 0
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, jag försöker hitta ett sätt att räkna antalet gånger som 20 olika celler klickas på (var och en bör räknas separat). Jag stötte på ditt VBA-kodförslag, försökte anpassa det till mina specifika behov men det fungerar inte. kan du tipsa om hur koden ska skrivas? de celler som jag skulle vilja räkna och de celler som värdena ska visas i är: F12>AU12, F13>AU13, G12>AV12, G13>AV13, H10>AW10, H11>AW11, H12>AW12, H13>AW13 , H14>AW14, H15>AW15, I10>AX10, I11>AX11, I12>AX12, I13>AX13, I14>AX14, I15>AX15, J12>AY12, J13>AY13, K12>AZ12, K13>AZ13).
Detta är VBA-koden jag har provat utan framgång:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRgArray som variant
Dim xNum
Dim xStrR, xStrS, xStrD Som sträng
Dim xRgS, xRgD As Range

Dim xFNum As Long
xRgArray = Array("F12,AU12", "F13,AU13", "G12,AV12", "G13,AV13", "H10,AW10", "H11,AW11", "H12,AW12", "H13,AW13 ", "H14,AW14", "H15,AW15", "I10,AX10", "I11,AX11", "I12,AX12", "I13,AX13", "I14,AX14", "I15,AX15", "J12,AY12", "J13,AY13", "K12,AZ12", "K13,AZ13")
On Error Resume Next
Om Target.Cells.Count > 1 Avsluta Sub
För xFNum = LBound(xRgArray) Till UBound(xRgArray)
xStrR = xRgArray(xFNum)
xStrS = ""
xStrS = Vänster(xStrR, 2)
xStrD = ""
xStrD = Höger(xStrR, 2)
Ställ in xRgS = Ingenting
Ställ in xRgS = Range(xStrS)
Om Typnamn(xRgS) <> "Ingenting" Då
Ställ in xRgD = Ingenting
Ställ in xRgD = Range(xStrD)
Om Typnamn(xRgD) <> "Ingenting" Då
Om Typnamn(Skärning(xRgS, Mål)) <> "Ingenting" Då
xRgD.Value = xRgD.Value + 1
End If
End If
End If
Nästa
End Sub

Tack på förhand för din hjälp.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, Koden nedan kan hjälpa dig. Gör ett försök. Tack. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRgS, xRgD As Range
Dim xStrRg As String
Dim xFNum Som heltal
Dim xArr1, xArr2
Om Target.Cells.Count > 1 Avsluta Sub
xStrRg = "F12-AU12; F13-AU13; G12-AV12; G13-AV13; H10-AW10; H11-AW11; H12-AW12; H13-AW13; H14-AW14; H15-AW15; I10-AX10; I11-AX11; I12-AX12; I13-AX13; I14-AX14; I15-AX15; J12-AY12; J13-AY13; K12-AZ12; K13-AZ13"
On Error Resume Next
xArr1 = Split(xStrRg, ";")
För xFNum = 0 Till UBound(xArr1)
xArr2 = Split(xArr1(xFNum), "-")
Ställ in xRgS = Range(xArr2(0))
Ställ in xRgD = Range(xArr2(1))
Om inte (Intersect(xRgS, Target) är ingenting) Då
xRgD.Value = xRgD.Value + 1
End If
Nästa
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Den ovan korrigerade koden är bra för arket jag arbetar med, tack. Men jag har en fråga om att lägga till ett tidsmakro så att räkningen varje dag (exklusive helger) flyttas till nästa rad i arket till exempel:
Rad 3 - 7/1/2021 "B1-B3; C1-C3; D1-D3" Rad 4 - 7/2/2021 "B1-B4; C1-C4; D1-D4"rad 5 - 7/3/2021 "B1-B5; C1-C5; D1-D5"
Denna kommentar minimerades av moderatoren på webbplatsen
Crystal, koden ovan är bra för arket jag arbetar med, tack. Men jag har en fråga om att lägga till ett tidsmakro så att räkningen varje dag (exklusive helger) flyttas till nästa rad i arket till exempel:

Rad 3 - 7/1/2021 "B1-B3; C1-C3; D1-D3"
Rad 4 - 7/2/2021 "B1-B4; C1-C4; D1-D4"
Rad 5 - 7/3/2021 "B1-B5; C1-C5; D1-D5"

Om detta är möjligt? tack, Ken
Denna kommentar minimerades av moderatoren på webbplatsen
Hej, tack för dessa VBA-koder, de nästan arbeta för mina behov. Jag är rädd att det faktum att jag måste gå förbi tvåsiffriga betyder att det inte kommer att fungera. Jag måste ha C8 fram till C110 och motsvarande antal är L8 till L110. Kan du hjälpa? Stort tack på förhand.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Andy, Följande VBA-kod kan göra dig en tjänst. Gör ett försök. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim xRgS, xRgD As Range
Dim xStrRg As String
Dim xCStr, xVStr Som sträng
Dim xItem Som heltal
xCSr = "C8: C110" 'Omfånget av celler du vill registrera klicken för varje cell
xVStr = "L8:L110"'Omfånget av celler att placera posterna i
Ställ in xRgS = Range(xCSr)
Ställ in xRgD = Range(xVStr)
Om inte (Intersect(xRgS, Target) är ingenting) Då
xItem = Target.Row - xRgS.Item(1).Row + 1
xRgD.Item(xItem).Value = xRgD.Item(xItem).Value + 1
End If
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Finns det något sätt att backa antalet räkningar? Till exempel: Jag hade gjort 5 klick, men jag ville bara ha 3. Så jag ändrar numret i cellen till 3, och när jag klickar igen fortsätter det från 3. ELLER har möjlighet att trycka på en annan cell och minska antalet med 1 om det är lättare.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej,
j'aimerai kommentar je pourrais le nombre de clics sur les cellules D10 à M10 et le retranscrire à la ligne R10 et le faire pour toutes les lignes suivante donc compter les clics sur les cellules D11 à M11 et le transcrire à la ligne R11 etc etc ?

hjärt
Denna kommentar minimerades av moderatoren på webbplatsen
Hej DUFOUR,
För att räkna antalet klick från D10 till M10 och mata ut det totala antalet klick i R10, kan du använda följande VBA-kod för att få det gjort.
Anmärkningar: I koden, intervallet "D10:M30betyder att koden bara fungerar från rad 10 till rad 30, så ange vilka rader du vill räkna.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updated by Extendoffice 20220609
    Dim xNum As Long
    Dim xRgCount, xRg As Range
    
    On Error Resume Next
    If Target.Cells.Count > 1 Then Exit Sub

    Set xRg = Range("D10:M30")
    If Intersect(xRg, Target) Is Nothing Then Exit Sub
    Set xRgCount = Range("R" & Target.Row)
    
    If IsNumeric(xRgCount.Value) Then
        xNum = xRgCount.Value + 1
    Else
        xNum = 1
    End If
    xRgCount.Value = xNum
End Sub
Denna kommentar minimerades av moderatoren på webbplatsen
Hej. Mycket tack för los códigos.
Jag gustaría saber cómo contar las veces que se hace clic sobre un enlace en una celda.
Tack så mycket.
Denna kommentar minimerades av moderatoren på webbplatsen
Hej jose maria,
För att räkna klicken på en hyperlänk kan du prova följande VBA-kod.
Anta att hyperlänkar finns i kolumn A och du vill att antalet klick ska fyllas i motsvarande cell i kolumn B (som visas i skärmdumpen nedan)
Vänligen ange följande kod i kalkylbladet (kod) fönstret.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
'Updated by Extendoffice 20220805
    Dim Hyperlink As Range
    Set Hyperlink = Target.Range

    Hyperlink.Offset(0, 1) = Hyperlink.Offset(0, 1) + 1
End Sub

https://www.extendoffice.com/images/stories/comments/comment-picture-zxm/clicks_on_a_hyperlink.png
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL