精华内容
下载资源
问答
  • // 计算重复个数相同的数字 // countObj对象 // 1 i :2 countObj[i], // 2:2, // 3:1, // 4:2, // resultObj对象 // 2 countObj[i]:1/2/4 i, // 1:3 for (i in countObj) { // 出现的次数为key, 出现...
    简单的一点样式
    <style>
        label{display: block; margin-bottom: 10px;}
        input{width: 20px; line-height: 20px; padding: 5px;border: 1px solid #ccc;}
        textarea{width:95%; height: 100px; resize: unset; margin: 10px auto; padding: 5px; border: 1px solid #ccc;}
        button{display:block;}
        p{width: 100%; line-height: 24px;}
    </style>
    
    html结构
    <label>
        输入数字的分隔符:<input type="text" id="numSplit" value=",">
    </label>
    <label>
        计算结果数字的分隔符:<input type="text" id="countSplit" value=".">
    </label>
    <label> 
        输入数字:<textarea type="text" id="num"></textarea>
    </label>
    <button type="button" onclick="getCount()">计算结果</button>
    <p id="result"></p>
    
    js代码
    function getCount() {
        // 初始化
        document.getElementById('result').innerHTML = '';
        var num = document.getElementById('num').value;
        var numSplit = document.getElementById('numSplit').value;
        var countSplit = document.getElementById('countSplit').value;
        var countObj = new Object();
        var resultObj = new Object();
        // 正则匹配数字间的任意符号并把分隔符替换成,
        var reg = /[`~\!@#\$%\^&\*\(\)\-\+_=\\\;:'"<,.>\?\/|%·!¥……()——【】、;:’“‘”,《》。?]/g;
        num = num.replace(reg, ',');
        countSplit = countSplit || '/';
        // 计算数字的重复个数
        if (num.indexOf(numSplit) !== -1) {
            var arr = num.split(numSplit);
            for (var i = 0; i < arr.length; i++) {
                // arr[i]数字值为key,出现的次数为value
                countObj[arr[i]] = countObj[arr[i]] ? countObj[arr[i]] + 1 : 1;
            }
        } else {
            alert('请输入正确的数字分隔符');
        }
        // 计算重复个数相同的数字
        // countObj对象
        // 1 i :2 countObj[i],   
        // 2:2,
        // 3:1,
        // 4:2,
        // resultObj对象
        // 2 countObj[i]:1/2/4 i,
        // 1:3
        for (i in countObj) {
           // 出现的次数为key, 出现这些次数的数字为value. 
            resultObj[countObj[i]] = resultObj[countObj[i]] ? resultObj[countObj[i]] + countSplit + i : i;
        }
        var newkey = Object.keys(resultObj).reverse();
        for (var i = 0; i < newkey.length; i++) {
            document.getElementById('result').innerHTML += '出现的次数:' + newkey[i] + ',&nbsp;&nbsp;&nbsp;&nbsp;数字:' + resultObj[
            newkey[i]] +'<br/>';
        }
    }

    运行结果:

    输入1,2,3,4,5,2,3,4 
    
    出现的次数:2, 数字:'2/3/4'
    出现的次数:1, 数字:'1/5'
    展开全文
  • 一种使用VBA数组去重的思路

    千次阅读 2020-02-13 23:41:53
    一种使用VBA数组去重的思路 下面这表是要去重的部分数据,这次我需要做的是 把数据中的日期提取出来去重 日后计算需要用到 为了能够达到去重的目的,首先要先把日期提取出来,如果只是为了提取日期,那么可以使用...

    一种使用VBA数组去重的思路

    下面这个表是要去重的部分数据,这次我需要做的是
    把数据中的日期提取出来去重
    日后计算需要用到
    在这里插入图片描述
    为了能够达到去重的目的,首先要先把日期提取出来,如果只是为了提取日期,那么可以使用format很方便,今天尝试用string写,只是一种尝试,以便以后处理其他数据,代码如下

    
    Sub 时间去重()
    Application.ScreenUpdating = False
    '把所有的日期数据放到arr()数组中,arr数组的大小等于行数
    Dim r As Integer, rc As Integer, str As String, arr() As String
    rc = Range("A1").CurrentRegion.Rows.Count
    ReDim arr(0 To rc - 1)
        For r = 2 To rc Step 1
        str = Cells(r, "A").Value
        'Cells(r, "G").Value = Left(str, 10)
        arr(r - 2) = Left(str, 10)
    Next r
    Range("G2:G" & rc).Value = Application.WorksheetFunction.Transpose(arr)
    '============================================================================
    '把arr()中的数据导入到key()中并去重
    Dim i As Integer, j As Integer, k As Integer, l As Integer, m As Integer, key(1000) As String
    k = 0
    m = 0
    For i = 0 To rc - 1 Step 1
        l = 0
        For j = 0 To k Step 1
            If arr(i) = key(j) Then
            l = l + 1
            End If
            Next j
        If l = 0 Then
            key(k) = arr(i)
            k = k + 1
        End If
    Next i
    Application.ScreenUpdating = True
    MsgBox key(10)
    End Sub
    

    两个数组

    逻辑是创建了两个数组,arr()和key(),arr()数组是存放所有处理完的数据的数组,key()是存放去重数据的数组

    两层循环

    一开始key数组是空的,外循环的次数是arr()数组中元素的数量,内循环是key()数组的元素数量,把arr数组中的元素依次放到key数组中与所有元素进行比较,如果比较中发现arr数组的元素在key数组中有,那么就不往key数组中添加,如果发现arr数组的这个元素在所有的key数组中都找不到,那么就添加到key数组中,从而最后输出的key数组就是去重之后的数组。

    最后msgbox输出一个验证就好了,对于现在的我还不那么熟练的是类似这种key数组数量变化中该如何控制循环次数,所以花了很多时间。
    新手,还得继续努力啊~

    展开全文
  • VBA 数组列不同值统计

    2011-04-24 20:23:36
    VBA 数组列不同值统计 VBA 数组列不同值统计
  • VBA数组完全教程

    万次阅读 多人点赞 2017-06-25 11:45:15
    兰色幻想VBA数组入门教程10集 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已。... Dim arr(1 To 10, 1 To 3) '创建一可以容下10行3列的数组空间 For x = 1 To 4 For y = 1 To 3 ar

    兰色幻想VBA数组入门教程10集

    1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已。

    2. 数组的维数:

    Sub 数组示例()
      Dim x As Long, y As Long
      Dim arr(1 To 10, 1 To 3)  '创建一个可以容下10行3列的数组空间
      For x = 1 To 4
        For y = 1 To 3
           arr(x, y) = Cells(x, y)  '通过循环把单元格区域a1:c4的数据装进数组中
        Next y
      Next x
     MsgBox arr(4, 3) '根据提供的行数和列数显示数组
     arr(1, 2) = "我改一下试试" '你可以随时修改数组内指定位置的数据
     MsgBox arr(1, 2)
    End Sub

    总结:二维是由行和列表示的数组,如ARR(3,2)表示数组中第3排第2列的元素。而一维数组只是由一个元素决定,如ARR(4)表示数组中第4个元素

    3. 把单元格数据搬入内存:

    一、声明:

              Dim arr as Variant  '声明一个变量,不能声明其他数据类型

               Dim arr(1 to 10, 1  to  2 ) , 这种声明也是错误的,固定大小的VBA数组是不能一次性装入单元格数据

           或:dim arr()    这种声明方式是声明一个动态数组,也可以装入单元格区域,构成一个VBA数组。

      二、装入

              arr =range("a9:c100")   '装入很简单,变量 = 单元格区域

      三、读出

              装入数组后的单元格数值,可以按 数组名称(行数,列数) 直接读取该位置的值,如下面的代码。

              Msgbox  arr(3,2)   '就可以取出搬过去的而构成的数组第3行第2列的内容

      四、示例

     Sub s3()
        Dim arr() '声明一个动态数组(动态指不固定大小)
       Dim arr1  '声明一个Variant类型的变量
       arr = Range("a1:c7")   '把单元格区域A1:C7的值装入数组arr
       arr1 = Range("a1:c7")   '把单元格区域A1:C7的值装入数组arr1 
       MsgBox arr(1, 1)   '读取arr数组中第1行第1列的数值 
       MsgBox arr1(2, 3)  '读取arr1数组的第2行第3列的数值 
    End Sub

    4. 把单元格数据搬入内存:

    Sub test()
      Dim arr     '声明一个变量用来盛放单元格数据
      Dim x As Integer
      arr = Range("a2:d5")     '把单元格数据搬入到arr里,它有4列4行 
      For x = 1 To 4     '通过循环在arr数组中循环
        arr(x, 4) = arr(x, 3) * arr(x, 2)      '数组的第4列(金额)=第3列*第2例 
      Next x
     Range("a2:d5") = arr     '把数组放回到单元格中
    End Sub
    Sub test1()
      Dim arr(1 To 5) '声明一维数组
      For x = 1 To 5
        arr(x) = x * 2  '通过循环给每个位置赋值
      Next x
     Range("A1:E1") = arr  '把数组导入到excel中的a1:e1单元格中
     Range("A1:A5") = Application.Transpose(arr) '如果是放在一列中,就需要对数组进行转置后再存放
    End Sub

    5. 动态数组的声明:

    Sub darr()
      Dim arr()  '声明一个动态的arr数组(不知道它能盛多少数据)
      Dim k
      k = Application.WorksheetFunction.CountIf(Range("a2:a6"), ">10") '计算大于10的个数
      ReDim arr(1 To k)  '再次声明arr的大小,正好盛下k数量的值
      For x = 2 To 6
        If Cells(x, 1) > 10 Then
          m = m + 1
          arr(m) = Cells(x, 1)  '通过循环把大于10的数字装入数组
        End If
      Next x
      MsgBox arr(2)
    End Sub

    6. 动态数组的声明:
        arr(-19 to 8)  这个数组的编号就是从-19开始的.那么它的最小编号就是-19,最大编号是8, 如果用语句返回就是:

       

    Sub t1()
         Dim arr(-19 To 8)
         MsgBox UBound(arr) '返回最大编号,结果为8
         MsgBox LBound(arr) '返回最小编号,结果为-19
      End Sub

    如果是有行列组成的二维数组呢?二维数组返回行的下标和列的下标见下例

           

    Sub t2()
            Dim arr(-19 To 8, 2 To 5)
         MsgBox UBound(arr) '返回第1维(行的)最大编号,结果为8
         MsgBox LBound(arr) '返回第1维(行的)小编号,结果为-19
         MsgBox UBound(arr, 2) '返回第2维(列的)最大编号,结果为5
         MsgBox LBound(arr, 2) '返回第2维(列的)最小编号,结果为2
    End Sub
    Sub t3()
            Dim arr
           arr = Sheets(1).UsedRange 'Usedrange的行数和列数是未知的
           MsgBox UBound(arr, 1) '可以计算这个区域有多少行
           MsgBox UBound(arr, 2) '可以计算出这个区域有多少列
    End Sub

    7. 使用Array函数创建常量数组:

    使用Array函数创建数组

            1维常量数组:Array("A",1,"C")

            2维常量数组: Array(Array("a", 10), Array("b", 20), Array("c", 30))

     也可以调用excel工作表内存数组:

            1维数量:  [{"A",1,"C"}]

             2维数量: [{"a",10;"b",20;"c",30}]

    内存常量数组有什么作用呢?

           1、简化赋值

                  比如:我需要给数组arr分别赋值10 ,20,30,40 ,一般就需要分别赋值,即:

                         arr(1)=10

                         arr(2)=20

                         arr(3)=30

                         arr(4)=40

                     而使用常量数量,只一句话:

                        arr=array(10,20,30,40)

            2、调用工作表函数时使用:

    Sub mylook()
                    Dim arr
                    arr = [{"a",10;"b",20;"c",30}]
                MsgBox Application.VLookup("b", arr, 2, 0)  '调用vlookup时可以作为第二个参数
    End Sub 

    8. 数组的合并和字符串拆分(Join & Split):

    多个字符的合并和字符串按规律的拆分是经常遇到的,如:

                A-REW-E-RWC-2-RWC 按分隔符-拆分成6个字符放在一个数组中

               有一组数array(23,45,7,1,76)想用分隔符-连接成一个字符串

       上面两种情况VBA提供了一对函数,即:

                  split(字符串,"分隔符") 拆分字符串

                  join(数组,"分隔符")   用分隔连接数组的每个元成一个字符串

    Sub t1()
          Dim arr, myst As String
           myst = "A-REW-E-RWC-2-RWC"
         arr = Split(myst, "-")  '按-分隔成一组数装入数组中
         'MsgBox arr(0) '显示数组的第一个数(分隔后的数组最小下标为0,不是1),显示结果为A
                   MsgBox Join(arr, ",") '再用","把数组的每个值连接成一个字符串,结果为"A,REW,E,RWC,2,RWC"
     End Sub

        值得注意的是:split和join只能对一维数组进行操作,如果是单元格或二维数组怎么办?只有一条途径,想办法转换为一维数组:

    Sub t2()
                     Dim ARR
                     ARR = Application.Transpose(Range("a1:a3")) ‘用转置的方法,把单元格一列数据转换成一维数组
                     MsgBox Join(ARR, "-")
    End Sub


    9. Filter函数实现数组筛选:

      数组的筛选就是根据一定的条件,从数组中筛选符合条件的值,组成一个新的数组,实现数组筛选的VBA函数是:

             Filter函数

      用法:Filter(数组, 筛选的字符,  是否包含) 

    Sub DD()
         arr = Array("ABC", "A", "D", "CA", "ER")
         arr1 = VBA.Filter(arr, "A", True) '筛选所有含A的数值组成一个新数组
         arr2 = VBA.Filter(arr, "A", False) '筛选所有不含A的数值组成一个新数组
         MsgBox Join(arr2, ",") '查看筛选的结果
    End Sub

    遗憾的是函数只能进行模糊筛选,不能精确匹配。

    10. VBA数组入门教程之10(大结局):他山之石):
    他山之石,可以攻玉,VBA中除可以利用的VBA函数外,还可以调用众多的Excel工作表函数对数组进行分解、查询和分析等,调用工作表函数可以省去循环判断的麻烦,进而提高运行效率。

            一、数组的最值

                 1、Max和Min 

                       工作表函数Max和Min是求最大值和最小值的函数,同样在VBA中也可以求数组的最大值和最小值。如:

    Sub t()
                            arr = Array(1, 35, 4, 13)
                            MsgBox Application.Max(arr)  '最大值
                            MsgBox Application.Min(arr)   '最小值
    End Sub


                 2、large和small

                      工作表函数large和small 是返回一组数的第N大和第N小,对VBA数组同样适用,如:

    Sub t1()
                              arr = Array(1, 35, 4, 13)
                              MsgBox Application.Large(arr, 2) '第2大值
                              MsgBox Application.Small(arr, 2)  '第2小值
    End Sub


               二、数组的统计与求和

                     1、Sum

                          Sum函数可以在工作表中求,同样也可以对VBA数组求和,如:

    Sub t2()
                              arr = Array(1, 35, 4, 13)
                              MsgBox Application.Sum(arr)  '对数组进行求和
    End Sub


                    2、Count和Counta

                         Count和Counta可以统计数组中数字的个数和数字+文本的个数。

     Sub t3()
                             arr = Array(1, 35, "a", 4, 13, "b")
                             MsgBox Application.Count(arr)  '返回数字的个数4
                             MsgBox Application.CountA(arr)  ‘返回数组文本和数字的总个数
     End Sub


              三、数组的查询和拆分

                   1、Mach查询数组

                     Match函数可以查询一个指定值在一组数中的位置,它也可以用于VBA数组的查询。如:

    Sub t4()
                            arr = Array(1, 35, 4, 13)
                            MsgBox Application.Match(4, arr, 0)  '查询数值4在数组Arr中的位置
    End Sub

                 2、Index拆分数组

                      数组的拆分在VBA中是一个难题,如果是按行拆分数组,除了用循环外也只能借用API函数完成了。幸好我们可以借用工作表函数index达到按列拆分数组,即多列构成的数组,你可以任意拆分出一列构成新的数组。方法是:Application.Index(数组, , 列数) ,例:

     Sub t2()
                             arr2 = Range("A1:B4") ‘把单元格区域A1:B4的值装入数组arr2
                             arr3 = Application.Index(arr2, , 2)  '把数组第2列拆分出来装入新数组arr3中,新数组为二维数组
                             MsgBox arr3(2, 1)  '取出新数组第2行的值
    End Sub      

            四、数组维数的转换

                Transpose转置数组在工作表中可以把行列转换。在VBA中同样也可以做到转换的效果。

                1、一维转二维。

    Sub t9()
                          arr = Array(1, 35, "a", 4, 13, "b")
                          arr1 = Application.Transpose(arr)
                          MsgBox arr1(2, 1) ‘转换后的数组是1列多行的二维数组
    End Sub

                2、二维数组转一维。

    Sub t2()
                           arr2 = Range("A1:B4")
                           arr3 = Application.transpose(Application.Index(arr2, , 2)) '取得arr2第2列数据并转置成1维数组
                          MsgBox arr3(2,)
    End Sub  

                   注:在转置时只有1列N行的数组才能直接转置成一维数组

                   思考题:我要把a1:c1中的内容用“-”连接起来,下面代码中为什么用了两次transpose

    Sub t10()
                  arr = Range("A1:C1")
                  MsgBox Join(Application.Transpose(Application.Transpose(arr)), "-")
    End Sub

      编后话:用于VBA数组的工作表函数我只是列出了一部分,其实象vlookup,Lookup等等函数也可以用于处理VBA数组,大家有空了就去尝试下吧。


    转自:http://www.360doc.com/content/14/0213/13/15122071_352166796.shtml

    展开全文
  • VBA二维数组的基础介绍

    千次阅读 2020-12-22 18:26:51
    既然你已经知道了如何有规划地产生一清单(一维数组),是时候仔细看一下如何使用数据表了。下面的过程产生一二维数组,储存国家名称,货币名称和交换汇率。Sub Exchange()Dim t As StringDim r As StringDim Ex(3...

    既然你已经知道了如何有规划地产生一个清单(一维数组),是时候仔细看一下如何使用数据表了。下面的过程产生一个二维数组,储存国家名称,货币名称和交换汇率。Sub Exchange()

    Dim t As String

    Dim r As String

    Dim Ex(3, 3) As Variant

    t = Chr(9) 'tab

    r = Chr(13) 'Enter

    Ex(1, 1) = "Japan"

    Ex(1, 2) = "Yen"

    Ex(1, 3) = 128.2

    Ex(2, 1) = "Mexico"

    Ex(2, 2) = "Peso"

    Ex(2, 3) = 9.423

    Ex(3, 1) = "Canada"

    Ex(3, 2) = "Dollar"

    Ex(3, 3) = 1.567

    MsgBox "Country " & t & t & "Currency" & t & "per US$" _

    & r & r _

    & Ex(1, 1) & t & t & Ex(1, 2) & t & Ex(1, 3) & r _

    & Ex(2, 1) & t & t & Ex(2, 2) & t & Ex(2, 3) & r _

    & Ex(3, 1) & t & t & Ex(3, 2) & t & Ex(3, 3), , _

    "Exchange"

    End Sub

    当你运行过程Exchange时,你将看到一个信息框,显示三列信息(见图7-2)

    图7-2 显示在信息框上的文本是可以自定义格式的。

    数组的维数:

    Sub 数组示例():

    Dim x As Long, y As Long

    Dim arr(1 To 10, 1 To 3) '创建一个可以容下10行3列的数组空间

    For x = 1 To 4

    For y = 1 To 3

    arr(x, y) = Cells(x, y) '通过循环把单元格区域a1:c4的数据装进数组中

    Next y

    Next x

    MsgBox arr(4, 3) '根据提供的行数和列数显示数组

    arr(1, 2) = "我改一下试试"'你可以随时修改数组内指定位置的数据

    MsgBox arr(1, 2)

    End Sub

    总结:二维是由行和列表示的数组,如 ARR(3,2)表示数组中第3排第2列的元素。而一维数组只是由一个元素决定,如ARR(4)表示数组中第4个元素

    静态和动态数组

    到目前为止,本章介绍的都是静态数组。静态数组是具有确定大小的数组。当你事先知道数组的大小时使用静态数组。静态数组的大小是在数组的声明语句里确定的,例如,语句 DimFruits(10)AsString 声明了一个由10个成员组成的叫做 Fruits 的静态数组。

    但是,万一你不肯定你的数组会包含多少个成员呢?如果你的过程由用户输入决定,每次程序执行时,用户提供的成员数可能会变化的。你如果确保你声明的数组不会浪费内存呢?

    回想你声明了一个数组后,VBA 会留出足够的内存来储存数组。如果你声明一个比你需要的更多成员的数组的话,你将浪费计算机资源。这个问题的解决方法是让你的数组变为动态的。动态数组是大小可以改变的数组。如果数组的大小每次都由程序运行而决定的话,就使用动态数组。

    1.  在当前工程里插入一个新模块并且重新命名为 DynamicArrays

    2.  输入下列过程 DynArray:

    Sub DynArray( )

    Dim counter As Integer

    'declare a dynamic array

    Dim myArray( ) As Integer

    'specify the initial size of the array

    Redim myArray(5)

    Workbooks.Add

    'populate myArray with values

    For counter = 1 to 5

    myArray(counter) = counter +1

    ActiveCell.Offset(counter-1, 0).Value = myArray(counter)

    Next

    'change the size of myArray to hold 10 elements

    Redim Preserve myArray(10)

    'add new values to myArray

    For counter = 6 To 10

    myArray(counter) = counter * counter

    With ActiveCell.Offset(counter-1, 0)

    .Value = myArray(counter)

    .Font.Bold = TrueEnd with

    Next counterEnd Sub

    3.  将你的 Excel 窗口和 VB 编辑器窗口并排显示

    4.  逐步运行过程 DynArray。你可以将鼠标置于代码中间,并且按下F8来执行逐条语句。程序

    DynArray 的结果如下图所示。

    图7-3 显示10个数据的数组

    在过程 DynArray 里,Dim myArray() As Integer 语句声明了一个叫做 myArray 的动态数组。尽管该语句声明了数组,但是,没有分配任何内存给该数组。第一条 ReDim 语句明确了 myArray 的开始大小并且占据了10个字节的内存让它储存5个成员,正如你所知,每个整型数据需要两个字节的内存。

    语句 Workbooks.Add 打开一新工作簿,然后 For…Next 循环用数据填充数组 myArray 并且将数组的成员写入工作表。在循环开始之前,变量 counter 等于1。循环里的第一条语句:

    myArray(counter) = counter + 1分配数值2给 myArray 的第一个成员。第二条语句:

    ActiveCell.Offset(counter-1, 0).Value = myArray(counter)将 myArray 成员的值输入到当前单元格里。当前单元格为A1。因为变量 counter 等于1,所以上面的语句就等于:

    ActiveCell.Offset(1-1, 0).Value = myArray(1)或者

    ActiveCell.Offset(0,0).Value = myArray(1)上面的语句在单元格A1里输入数据。循环里面的语句被执行5次。VB在合适的工作表单元格里马输入数据并且进行到下一语句:

    ReDim Preserve myArray(10)通常,当你改变一个数组的大小时,你将失去该数组原来的所有数据。语句 ReDim 将数组重新初始化。然而,你可以将新成员加入到现存的数组里去,通过在语句 ReDim 后面带上关键字 Preserve。换句话说,关键字 Preserve 保证重新改变大小的数组不会弄丢现有的数据。如果你忽略它,新数组将会

    是空的。

    第二个 For…Next 循环给数组 myArray 的第六,第七,第八,第九和第十个成员赋值。这次,数组成员的数值是相乘的:counter * counter。VB使用粗体将数组其它的数值输入到合适的工作表的单元格里面。

    技巧:确定数组大小

    在使用数组之前,必须在 Dim 或 ReDim 语句里确定数组的大小。这意味着你不可以给数组成员赋值,直到你使用 Dim 或者 ReDim 语句声明了该数组。

    展开全文
  • 大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法。如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法该如何做到...
  • php计算数组中不为空的元素的个数的方法:首先通过array_filter()函数利用回调函数过滤数组中的元素,并返回过滤后的数组;然后利用count()函数统计过滤后的数组中的元素的个数即可。array_filter() 函数用回调函数...
  • 数组的存在价值就是让代码提速。 数组和非数组的差异只在于数据的保存和读取方式不同,虽然操作这些数据的方法或者函数并没有不同,但是保存与读取上的差异... 数组就是连续可索引的具有相同内在数据类型的元素的...
  • vba 数组(动态数组

    万次阅读 2013-10-15 10:38:08
    主要内容: 本文章主要介绍VBA中,数组的使用,特别介绍动态数组的使用,并有简单事例,帮助理解。 数组是我们经常用到的存储数据的一种媒介,他到底是什么呢? 一、定长数组 数组是具有相同数据类型并且共享...
  • 下面的过程产生一二维数组,储存国家名称,货币名称和交换汇率。 Sub Exchange() Dim t As String Dim r As String Dim Ex(3, 3) As Variant t = Chr(9) 'tab r = Chr(13) 'Enter Ex(1, 1) = "Japan" Ex(1, 2) =...
  • VBA 获取二维数组的行数和列

    千次阅读 2013-01-22 13:11:00
    Dim arr As Variant ReDim arr(3, 4) Dim row As Long Dim col As Long row = UBound(arr, 1) col = UBound(arr, 2) 转载于:https://www.cnblogs.com/nchxmoon/archive/2013/01/22/2871208.html...
  • 项目背景近期接到一工作任务,在运行设备中,会定期生成数据记录文件(txt 格式),我需要将这文件中的 1000 数据导入到 Excel 中,通过公式计算,得到需要的另外两列数据,将这两列数据作为数据源...
  • VBA 数组 巧用

    万次阅读 2012-04-24 16:21:03
    数组是一相当好的变量集合,里面可以存放许多按实际要求但是不可意料其值的值!  要使用数组,首先要定义数组,方能使用,如何定义,在上一篇已做了说明,在此不再阐述!  数组根据不同的需求,可分为静态数组...
  • Excel VBA数组入门教程 1. 前言:不要把VBA数组想的...Sub 数组示例() Dim x As Long, y As Long Dim arr(1 To 10, 1 To 3) '创建一可以容下10行3列的数组空间 For x = 1 To 4 For y = 1 To 3 arr(x, y) =...
  • 小伙伴们,今天来和大家分享一道关于求一个数组中每个元素出现的次数以及那个元素出现的最多出现了几次的题~~ constarr=["b","c","b","c","a","b","c",'c'] constobj={} //统计每个元素出现的次数 for(leti=0;i...
  • 每天一篇Excel技术图文微信公众号:Excel星球NO.XXX-...——所以就做了这样一整理。非常认真的说,VIP学员的学习资料是非常全面的,基本覆盖了Excel的方方面面。从常用技巧、入门教程、透视表、函数、图表到Pow...
  • 去掉一数组里的最大值与最小值,求数组元素的平均值。函数接口为:float avescore(float score[] ,int n)解析:此题比较简单,循环一遍,记下数组的最大值与最小值以及总和,然后在求的总和里面减掉最大值与最小值...
  • 数组重复次数最多的元素递归Solution: 解: Required function: 所需功能: func_occurence ( node *temp) //recursive function Input: 输入: A singly linked list whose address of the first node is ...
  • 目的就是要取到key为name的集合,得到这结果: $arr2 = array( 0=>'张三', 1=>'李四' ); 这里有几种方法: 1:最简单的,foreach遍历数组: foreach ($arr as $key => $value) { $arr2[] = $value['n
  • 【题目】:给定一个数组,找出数组内两两组合使得差最大或者最小的组合个数,注意原数组无序且每个数都是正整数 时间复杂度O(nlogn) 空间复杂度O(1) import java.util.Arrays; import java.util.Scanner; public ...
  • 个数组的交集

    2020-05-25 17:13:48
    给定两个数组,编写一函数来计算它们的交集。 示例 1: 输入: nums1 = [1,2,2,1], nums2 = [2,2] 输出: [2] 考虑此题,可用Set的去重特性去做 思路: 分别将两个数组,放入集合筛选掉重复的元素 根据在集合...
  • 计算程序运行的时间 数组处理的极限 示例 如图所示,该表为某公司的产品销售记录。现需要根据规格型号建立汇总表,并根据单元格G2所示的规格型号汇总数量及金额,然后将结果存入H2和I2中。由于该表数据超过10万...
  • 01 如何把一个数组循环右移k位 例如:数组{1,2,3,4,5,6,7,8,9}右移两位 第一步 逆序数组子序列 1234567,数组变为765432189 第二步 逆序列组子序列89,数组变为765432198 第三步 全部逆序,数组变为891234567 /** ...
  • 1 使用数组公式 1.0 感想,这些公式都需要太多小技巧了,很麻烦 公式这么复杂, 用了很多奇怪技巧后对非专职研究EXCEL的人来说失去意义了 一般人能这么做,也就是写成一工具表后,平时很少改了, 不...
  • #include<cstdio> int main() { int a[20],num[11]={0},i,sum=0,mode,max,maxindex; double aver,median; for(i=0;i<20;i++) { scanf("%d",&a[i]); num[a[i]]++; ... maxin.
  • 系统:Windows 7 软件:Excel 2016 本系列参考LeetCode一些题目,将其进行超级简化,用VBA来解 Part 1: 题目 有多少小于当前数字的数字 ...新建一个数组arr,数组中每一个元素取值为小于当前
  • VBA数组

    2012-04-24 09:58:44
    VBA数组入门系列为兰色幻想原创,教大家学习和使用...就是一个VBA数组。 二、数组的维数组的维其实和文件管理的目录一样的,只有一层时就是一维。如果有两层则是二维数组(有行有列为二维),如果有...
  • var values = [1,2,3,4,5,6];var max = Math.max.apply(Math,values); //求最大值 var min = Math.min.apply...,一共11。其中String,Number和Boolean为包装对象,对应 字符串,数字和布尔值三种数据类型。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,064
精华内容 425
热门标签
关键字:

vba计算数组元素个数