gpt4 book ai didi

excel - 使用 VBA,我想计算一个字符串在特定列中出现的次数

转载 作者:行者123 更新时间:2023-12-04 22:16:17 35 4
gpt4 key购买 nike

我有一个表,产品 ID 旁边有产品名称(分别为 A 和 B)。
在一个单独的表中(在同一张表上),我在客户旁边有产品 ID。 (分别为 O 和 P)。一些 ID 有多个客户。因此,同一个 ID 可以出现多次。
对于 A 列中的每个单元格,有没有办法计算字符串在 P 列中出现的次数。然后,在 C 列中相关单元格旁边打印?
这是我迄今为止编写的代码,但现在有点卡住了:

Sub CountOccurrences()

Dim ID As String
Dim Result As Long
'Result refers to the number of times it is found in column P
Dim tablerng As Range
'The table consisting of columns O and P
Dim resultsrng As Range
Dim LastRow As Long
Cell As Range
LastRow= Cells(Rows.Count, 1).End(xlUp).Row
Set tablerng = Range("P1:P" & LastRow)
Set resultsrng = Range(“C1:C”& LastRow)
For Each cell In tablerng
不知道从这里做什么......

最佳答案

根据您要如何处理数据,确定要查找的短语/字符串,这样的事情会起作用:

Option Explicit

Sub instancesOfString()
Dim catchPhrase As String
catchPhrase = InputBox("What is the string to match?")
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Dim dataArray As Variant
dataArray = Range(Cells(1, 1), Cells(lastRow, 1)).Value
Dim i As Long
For i = 1 To lastRow
If dataArray(i, 1) = catchPhrase Then
Cells(i, 2).Value = 1
Dim catchPhraseCount As Long
catchPhraseCount = catchPhraseCount + 1
End If
Next i
Debug.Print catchPhraseCount
End Sub
高水平点是:
  • 用于确定所需字符串的输入框
  • 将数据捕获为数组以帮助提高速度
  • 匹配时将值“1”输入到相邻单元格
  • 对循环中匹配的字符串进行计数
  • 将总数输出到即时窗口

  • 这将教你一些东西,例如,引用/使用即时窗口,使用循环和使用数组......我试图将尽可能多的高级东西打包到小包中,因为你提到了你这样做是为了学习。
    花一些时间,剖析项目,您可以将其减少到更少的行,甚至消除对相邻单元格中“检查”值的需要,改变最终输出......

    根据您在初始代码中的内容,我们不知道您在哪里找到输入,您开始一个循环,但需要了解您打算如何使用 for each方面,我们也不知道某些变量被用于什么。在进一步采取这些措施之前,除了提供代码之外,没有什么可以帮助您的起点,这并不是这里的真正目标(尽管显然我只是这样做了)......
    使用全名变量非常重要,有助于理解,因此您一切顺利!

    关于excel - 使用 VBA,我想计算一个字符串在特定列中出现的次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68833330/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com