精华内容
下载资源
问答
  • VBA取某一列所使用的单元格数

    千次阅读 2017-01-04 13:15:06
    Debug.Print Worksheets(1).[A65536].End(xlUp).Row ...功能是返回个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+ 向上键、End+ 向下键、End+ 向左键或 End+ 向右键。Range 对象,只读。

    Debug.Print Worksheets(1).[A65536].End(xlUp).Row


    完整介绍Excel End(xlUp).Row

    一、End(xlUp).Row介绍

    功能是返回一个 Range 对象,该对象代表包含源区域的区域尾端的单元格。等同于按键 End+ 向上键、End+ 向下键、End+ 向左键或 End+ 向右键。Range 对象,只读。

    其语法如下:

    expression.End(Direction)

    (本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

    expression 必需。 该表达式返回应用于列表中的对象之一。

    Direction XlDirection 类型,必需。所要移动的方向。

    XlDirection 可为 XlDirection 常量之一。

    xlDown

    xlToRight

    xlToLeft

    xlUp

    二、End(xlUp).Row示例

    本示例选定包含单元格 B4 的区域中 B 列顶端的单元格。

    Range("B4").End(xlUp).Select

    本示例选定包含单元格 B4 的区域中第 4 行尾端的单元格。

    Range("B4").End(xlToRight).Select

    本示例将选定区域从单元格 B4 延伸至第四行最后一个包含数据的单元格。

    Worksheets("Sheet1").Activate

    (本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

    Range("B4", Range("B4").End(xlToRight)).Select

    再比如:

    Range("a65536").End(xlUp).Row A列数据区域最后一行的行号

    Range("b65536").End(xlUp).Row B列数据区域最后一行的行号

    Range("d65536").End(xlUp).Row D列数据区域最后一行的行号

    Range("k65536").End(xlUp).Row K列数据区域最后一行的行号

    最后,再看看一段VBA调用的代码吧:

    Dim i, M, iRow, sh, arr

    M = 0.0015

    For Each sh In ThisWorkbook.Sheets

    (本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

    iRow = sh.[D65535].End(xlUp).Row

    ReDim arr(1 To iRow, 1 To 2)

    arr = sh.Range("D3:E" & iRow)

    For i = 2 To UBound(arr)

    arr(i, 1) = arr(i, 1) * M

    arr(i, 2) = arr(i, 2) * M

    Next

    arr(1, 1) = Application.Substitute(arr(1, 1), "平方米", "亩")

    arr(1, 2) = Application.Substitute(arr(1, 2), "平方米", "亩")

    sh.Range("D3:E" & iRow) = arr

    Next


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

    2011-04-24 20:23:36
    VBA 数组不同值统计 VBA 数组不同值统计
  • VBA取得EXCEL表格的行数和列

    千次阅读 2019-07-25 15:50:41
    VBA取得EXCEL表格的行数和列数 请注意不要使用Columus等关键字作为变量,例如"Columus = ActiveSheet.UsedRange.Columns.Count"! 初学EXCEL宏的童鞋,总是很想知道表格含有数据的行数和列数,尤其是行数和列数...

    VBA取得EXCEL表格中的行数和列数

    请注意不要使用Columus等关键字作为变量,例如"Columus = ActiveSheet.UsedRange.Columns.Count"!

    初学EXCEL宏的童鞋,总是很想知道表格中含有数据的行数和列数,尤其是行数和列数不确定的情况下。这样可以避免很多的错误,并且可以提高效率。但每次用到的时候到网上查找时,总是给了很多无用的答案,往往找不到想要的结果。笔者也是每次使用时,临时查找总是很头疼。偶然发现一篇博客,上面详细记录了不同的方法,笔者测试了几种发现真的很好用。本着分享万岁的精神,将博客内容共享出来。希望对大家有所帮助。

    来源:http://www.okexcel.com.cn/bbs/viewthread.php?tid=26

    注:每种方法中上面的是Excel的行数,下面的是Excel的列数。

    方法1:

    ActiveSheet.UsedRange.Rows.Count

    ActiveSheet.UsedRange.Columns.Count

    缺点:有时可能会比实际数大一些,原因是如果你把最后几行(列)数据清除后(非整行或整列删除),用这个命令仍返回未清除前的值。就是说现在虽然是空的,但是你曾经用过也算你的。

    方法2:

    ActiveSheet.Range(“A65535”).End(xlUp).Row

    ActiveSheet.Range(“IV1”).End(xlToLeft).Column

    可以简写为:

    ActiveSheet.[A65536].End(xlUp).Row

    ActiveSheet.[IV1].End(xlToLeft).Column

    缺点:只能计算出一列(行)的最后一个单元格所在的行(列)数。本例是只返回A列最后一个单元格所占的行数。

    方法3:

    ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

    ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column

    缺点:在工作表进行对删除或清除操作时也会变得比实际情况大。

    方法4:

    ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row

    ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column

    缺点:在工作表进行对删除或清除操作时也会变得比实际情况大。

    方法5:

    Application.CountA(ActiveSheet.Range(“A:A”))

    Application.CountA(ActiveSheet.Range(“1:1”))

    只能统计一列(行)的实际使用情况,得到的不一定是最后一行(列)的位置。方法2的数值比此方法大时,说明在A列的数据间有空白未填写的单元格。

    方法6:

    ActiveSheet.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

    ActiveSheet.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

    效果同方法2

    以上方法中比较常用的是方法1和方法2。
    在这里插入图片描述

    展开全文
  • 函数作用:将工作表最后一列作为页脚打印在每一面页尾101 '102.函数作用:获取vbproject引用项目.................102 '103.函数作用:移除Excel工作表的外部数据连接.......103 '104.函数作用:将选择定单元格作成...
  • 假如某一列包含多种重复单元,但是重复的单元对应的其它列却不相同,需求便是指定某一列,寻找其中相同的元素,对两行元素进行合并。如下图所示的源数据, 可以看到,该Excel表格的A列有很多重复项,对他们进行合并...

    合并需求

    假如某一列包含多种重复单元,但是重复的单元对应的其它列却不相同,需求便是指定某一列,寻找其中相同的元素,对两行元素进行合并。如下图所示的源数据,
    在这里插入图片描述
    可以看到,该Excel表格的A列有很多重复项,对他们进行合并,其它列直接连接起来,效果如下图所示。

    在这里插入图片描述

    解决方案

    在这里提供一个可设定的解决方案,也是一个SUB子程序。源代码如下。

    Sub mergeCategoryValues()
        Dim lngRow As Long
    
        With ActiveSheet
            Dim columnToMatch As Integer: columnToMatch = 1       'Indicates the column to Match
            Dim columnToConcatenateDown As Integer: columnToConcatenateDown = 2   'Indicates the up column to Concatenate
            Dim columnToConcatenateUp As Integer: columnToConcatenateUp = 6         'Indicates the down column to Concatenate
            lngRow = .Cells(Rows.Count, columnToMatch).End(xlUp).Row      'Calculate the Rownum of last line
            .Cells(columnToMatch).CurrentRegion.Sort key1:=.Cells(columnToMatch), Header:=xlYes     'Sort the column to match in order to make the same value appear at the same time
    
            Do
                If .Cells(lngRow, columnToMatch) = .Cells(lngRow - 1, columnToMatch) Then           'If this line equals to next line of this line
                    For i = columnToConcatenateDown To columnToConcatenateUp                        'Concatenate column by column
                        .Cells(lngRow - 1, i) = .Cells(lngRow - 1, i) & Chr(10) & .Cells(lngRow, i)
                    Next i
                    .Rows(lngRow).Delete                                        'Delete the Row which has been copied
                End If
                lngRow = lngRow - 1                                         'From last to first
            Loop Until lngRow = 1                                           'Until to first
        End With
    End Sub
    

    mergeCategoryValues主要就是满足了上述的多行合并需求。因为我在网络上所搜索到的程序大都有很多问题,而这个例程没有BUG,而且会有很详细的代码注释,可以帮助你们进行二次开发。中文代码注释如下:

    Sub mergeCategoryValues()
        Dim lngRow As Long
        With ActiveSheet
            Dim columnToMatch As Integer: columnToMatch = 1       'Indicates the column to Match 选择匹配列
            Dim columnToConcatenateDown As Integer: columnToConcatenateDown = 2   'Indicates the up column to Concatenate 选择想要连接的左列 
            Dim columnToConcatenateUp As Integer: columnToConcatenateUp = 6         'Indicates the down column to Concatenate 选择想要连接的右列,例如我要匹配第一列,对应相同元素的第二列到第五列进行连接 那么 columnToConcatenateDown = 2, columnToConcatenateUp = 5
            lngRow = .Cells(Rows.Count, columnToMatch).End(xlUp).Row      'Calculate the Rownum of last line 计算指定匹配列的最后一行的行数
            .Cells(columnToMatch).CurrentRegion.Sort key1:=.Cells(columnToMatch), Header:=xlYes     'Sort the column to match in order to make the same value appear at the same time 对匹配列进行排序,使得相同的元素得以同时出现
    
            Do
                If .Cells(lngRow, columnToMatch) = .Cells(lngRow - 1, columnToMatch) Then           'If this line equals to next line of this line 如果匹配列两个相邻元素相等,那么触发合并程序
                    For i = columnToConcatenateDown To columnToConcatenateUp                        'Concatenate column by column 对连接列进行遍历
                        .Cells(lngRow - 1, i) = .Cells(lngRow - 1, i) & Chr(10) & .Cells(lngRow, i)   '进行连接,并使用Chr(10)作为分隔符
                    Next i
                    .Rows(lngRow).Delete                                        'Delete the Row which has been copied 删除已经被合并的列
                End If
                lngRow = lngRow - 1                                         'From last to first
            Loop Until lngRow = 1                                           'Until to first
        End With
    End Sub
    
    

    希望该方法可以帮到你,有问题评论区见,我很快会回复。

    展开全文
  • excel如何快速统计一列中相同数值出现的个数_百度经验 --这里介绍了两种解决方式,用第一种https://jingyan.baidu.com/article/9113f81b2c16822b3214c785.html   EXCEL怎样统计一列中重复项的个数?_百度知道--...

    excel如何快速统计一列中相同数值出现的个数_百度经验 --这里介绍了两种解决方式,用第一种
    https://jingyan.baidu.com/article/9113f81b2c16822b3214c785.html

     

    EXCEL中怎样统计一列中重复项的个数?_百度知道--这个看起来更明了  -数据透视表
    https://zhidao.baidu.com/question/241045717.html 

    统计后,还可以对 值进一步   筛选范围

      

     

    将数据拷贝 出来。

      

     

    展开全文
  • 问题 左上角为a1 比如其中,key2 ,key4, key6 后面都可能带空格 key1 key2 key3 key4 key5 key6 key7 key8 key9 key10 key11 key12 key10 key10 ...VBA方法 所有的工...
  • VBA中个集合对象(collection),Collection 对象是组可称为“单元”的有序项目的集合,可以理解为可以随意增减数量的维数组。 Collection对象提供了种方便的方法,可以将相关的组项目当作单个对象进行...
  • VBA基础打卡

    2017-11-13 23:19:30
    vba
  • VBA得到EXCEL表格的行数和列

    万次阅读 多人点赞 2013-07-15 15:38:46
    VBA得到EXCEL表格的行数和列数    每种方法上面的是Excel的行数,下面的是Excel的数。 方法1:  ActiveSheet.UsedRange.Rows.Count   ActiveSheet.UsedRange.Columns.Count  缺点:有时可能...
  • 一张表有A,B,C三,都是int。如何设置在插入数据后,A的值等于B+C的值自动算。(MySQL触发器禁止对本表进行操作)
  • 每种方法上面的是Excel的行数,下面的是Excel的数。 方法1:  ActiveSheet.UsedRange.Rows.Count   ActiveSheet.UsedRange.Columns.Count  缺点:有时可能会比实际数大一些,原因是如果你把最后几行(...
  • VBA计算WPS 表格ET EXCEL的行数和列数   每种方法上面的是Excel的行数,下面的是Excel的数。 方法1: ActiveSheet.UsedRange.Rows.Count ActiveSheet.UsedRange.Columns.Count 缺点:有时可能会比实际...
  • excel判断某一列中的数据是否在另一列中(含跨sheet)
  • VBA得到EXCEL表格的行数和列数  每种方法上面的是Excel的行数,下面的是Excel的数。 方法1:  ActiveSheet.UsedRange.Rows.Count   ActiveSheet.UsedRange.Columns.Count  缺点:有时可能会比实际...
  • VBA 分割求平均值

    2017-02-28 13:53:22
    Function StrToArr(str As String, delimiter As String) As VariantDim ar, nar() If (Trim(str) = "") Then ReDim nar(0) StrToArr = nar GoTo EndR End Ifar = Split(str, delimiter)ReDim nar(UBound
  • VBA取得EXCEL表格的行数和列数 请注意不要使用Columus等关键字作为变量,例如"Columus = ActiveSheet.UsedRange.Columns.Count"! 初学EXCEL宏的童鞋,总是很想知道表格含有数据的行数和列数,尤其是行数...
  • Find方法按行查找查找的区别 实现代码2 获取工作表总行数 实现代码3 单元格对象的End属性 End属性的局限性 其他获取最后数据行行号的方法 1.定位(SpeciaICells) 2.UsedRange 实现代码4 3. ...
  • VBA列数字与字母互换

    千次阅读 2018-01-31 12:33:24
    vba列数字与字母互换: 方案:速度:快 Function NumToStr(ByVal Num As Long) As String '数字转字母  Dim M As Long  If Num  Do  M = Num Mod 26  If M = 0 Then M = 26  NumToStr
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧3 获得指定行、列中的最后个非空单元格 12 技巧4 定位单元格 12 技巧5 查找单元格 12 5-1 使用Find方法 12 5-2 使用Like运算符 12 技巧6 替换单元格内字符串 12 技巧7 复制单元格区域 12 技巧8 仅复制数值到另...
  • 那就是对着满屏幕“五颜六色”的数字,要求出每指定颜色的单元格的数值。(如下图,因涉及数据敏感性,简易表示一下) 这个问题看似简单,但是如果不使用VBA真的有点无从下手的感觉(因为本小白不懂VBA...
  • ​EXCEL是由很多的对象组成,每个对象都有他的属性方法,所谓的对象可以理解为所有存在的东西,在同个程序里的对象之间是存在关系的,比如说上下级关系或同级关系,上下级关系之间用英文句点“.”连接。...
  • EXCEL:获取某或得最后个非空单元格的行数和数值 、A列中最后个非空单元格是 Sub LastRow() Dim rng As Range Set rng = Sheet1.Range("A65536").End(xlUp) MsgBox "A列中最后个非空...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,739
精华内容 695
关键字:

vba中计算一列数值的和