精华内容
下载资源
问答
  • Vba获取表格某一列的值,判断单元格是否为空,是则开始计数并返回
  • 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


    展开全文
  • excel vba 获取行号

    2014-05-07 11:58:26
    excel vba 获取行号
  • excel VBA获取EXCEL中的行数和数.
  • 想用vba选中一列中第一个有值的单元格将其填色,现在不知如何选中,求助</p>
  • 背景 业务需要依据详细设计文档编写所有对应的页面 问题 工作量大,11张大表(几十上百字段)时间紧 3天完成 核心 有完整的表设计,可通过excel手动编辑完成...通过代码实现手工操作excel的工作,也就是编写VBA宏 ...

    背景

    业务需要依据详细设计文档编写所有对应的页面


    问题

    工作量大,11张大表(几十上百字段)时间紧 3天完成


    核心

    有完整的表设计,可通过excel手动编辑完成。


    新问题

    普通字段没问题,可增加了字典后工作量骤然提升,这种特殊性让工作的难度和体量都给手工操作Excel带来了挑战


    解决方案

    通过代码实现手工操作excel的工作,也就是编写VBA宏

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Sub  detailPage()
    '
    ' 沫沫金
    ' 生成居民健康档案浏览器页面,时间: 2017/08/17
    '
    Dim  tri  As  Integer , td, tableName, nameC, valC, dicC, saveC  As  String
    '
    '配置区域:Config
    '
    '三列一行控制器记录仪
    tri = 1
    '表名列
    tableName = LCase(Cells(1,  "D" ))
    'label列
    nameC =  "A"
    '值列
    valC =  "B"
    '字典列
    dicC =  "C"
    '存储列
    saveC =  "F"
     
    For  n = 1  To  [A65536]. End (xlUp).Row
         '初始行内容
         td =  ""
         '三列一行
         If  tri = 1  Then  td =  "<tr>"
         '字段说明
         td = td +  "<td width=''33%''><h3><i class=''ico ico_23''></i>"  + Cells(n, nameC)
         '字典字段特殊处理
         If  Cells(n, dicC) =  ""  Then
         td = td +  "</h3><p>${sessionScope.data."  + tableName +  "[index]."  + LCase(Cells(n, valC)) +  "}</p></td>"
         Else
         td = td +  "</h3><p><dic:dic type=" ""  + Cells(n, dicC) +  "" " value=" "${sessionScope.data."  + tableName +  "[index]."  + LCase(Cells(n, valC)) +  "}" " /></p></td>"
         End  If
         '三列一行结束处理
         If  tri = 3  Then  td = td +  "</tr>"
         '拼接一行,扔到空闲列统一拷贝
         Cells(n, saveC) = td
         '当前列记录
         tri = tri + 1
         '三列一行控制器
         If  tri > 3  Then  tri = 1
    Next  n
     
    MsgBox  "恭喜你,详细信息生成成功。"
    '
    End  Sub

    启用宏,拷贝到代码区运行即可看到拼接结果。完全自定义拼接格式,百分百解放双手的工具。


    下面,给java开发同伴重点说明下

    if判断 条件不用圆括号
    条件判断等于一个等号
    格式排版必须控制好
    没有分号


    以上,运行说明,在当前的sheet页Alt+F8运行上面的宏。生成完成会收到友情提醒,好了,愉快的VBA结束。



    本文转自 沫沫金 51CTO博客,原文链接:http://blog.51cto.com/zl0828/1957107,如需转载请自行联系原作者
    展开全文
  • VBA源代码,根据某列中的最大值,拿到该行的行号。此代码为取出若干小区的信息,7*24小时,拿到某列值最大的行号,精简成7行
  • 笔者最近在做个数据库项目,其中需要从EXCEL中提取关键字段。提取内容如下图所示,需要将图中加粗部分单独提出后进行去噪处理。如果通过word处理,文字量小的时候尚可实现,但几十万字的处理量很容易就造成假死。...

    笔者最近在做一个数据库项目,其中需要从EXCEL中提取关键字段。提取内容如下图所示,需要将图中加粗部分单独提出后进行去噪处理。如果通过word处理,文字量小的时候尚可实现,但几十万字的处理量很容易就造成假死。因此采用了EXCEL进行数据处理。
    在这里插入图片描述

    代码如下:功能是将B列中的数据筛选后存入C列

    Sub 提取内容()
    Dim searchtext
    Dim textlong
    Dim str_start
    Dim str_end
    
    For i = 1 To 2000
    searchtext = Worksheets("sheet1").Range("B" & i).Value
    textlong = Len(Worksheets("sheet1").Range("B" & i).Value)
    '————————————————————————————确定提取的字符区间
        If InStr(searchtext, "解决") <> 0 Then
        str_start = InStr(searchtext, "解决")
        str_end = InStr(searchtext, "问题")
     '————————————————————————————避免B列出现不含有所要提取内容时报错
    If str_start - str_end - 2 > 0 Then
    Worksheets("B60J7摘要").Range("c" & i).Value = Mid(searchtext, str_start + 2, str_start - str_end - 2)
    End If
     '————————————————————————————提取B列中的内容至C列
        ElseIf InStr(searchtext, "问题") <> 0 Then
        Worksheets("sheet1").Range("c" & i).Value = Right(searchtext, str_start + 2, str_start - str_end - 2)
        ElseIf searchtext = "" Then
        Worksheets("sheet1").Range("c" & i).Value = ""
        Else
        Worksheets("sheet1").Range("c" & i).Value = "不含有"
        End If
     Next
    End Sub
    

    注:由于要提取的内容中,必然以“解决”开头,以“问题”结尾,因此可采用上述代码处理。提取结果如图所示。

    展开全文
  • 在Excel中,经常需要得知某列最后个非空单元格的行号,以确定数据的数量。编写自定义函数以实时计算单元格所在的最后非空单元格的行号。 员工编号 姓名 部门 0114 俞卫广 总经办 0374 ...

    目录

    易失性函数


        在Excel中,经常需要得知某列最后一个非空单元格的行号,以确定数据的数量。编写自定义函数以实时计算某单元格所在的列最后非空单元格的行号。

    员工编号姓名部门
    0114俞卫广总经办
    0374高波总经办
    0209曲波人事部
    0352周书敬人事部
    0370姚胜财务部
    0265毛传阳财务部
    0016袁志刚财务部
    0042齐光市场部
    0028刘晨


     

        使用Find方法找到单元格所在列的最后一个单元格,并返回该行号,最后使用Volatile方法将函数设置为易失性函数。

    Option Explicit
    
    Function GetLastRow(rng As Range) As Long
        Dim refRng As Range
        Dim findRng As Range
        
        Set refRng = rng.Cells(1, 1).EntireColumn
        Set findRng = refRng.Find(what:="*", after:=refRng.Cells(1, 1), searchdirection:=xlPrevious)
        
        If findRng Is Nothing Then
            GetLastRow = 0
        Else
            GetLastRow = findRng.Row
        End If
        
        Application.Volatile
    End Function
    

    返回工作表,在单元格中分别输入,到如下结果

         

    Volatile方法

        Volatile方法是Excel程序对象(Application)的一个方法,该方法用在自定义函数中,用以标明该函数为易失性函数。该方法的语法为:

    Application .Volatile ( [Volatile] )

         其中,参数Volatile为可省略参数,其类型为逻辑值。当该值为True(默认值)时,则
    表示该函数为易失性函数,若该参数为False时,则表示非易失性函数。

    易失性函数

        当工作表的任何值发生变化时,易失性函数就会进行重算,而非易失性函数只有当其引用的单元格的值发生变化时才会进行重算。对于本例来说,其引用的区域为一个单元格,当该单元格所在列的其他单元格发生变化时,就会影响到该函数的值,因而选用易失性函数。然而,并非所有的函数都要标记为易失性函数。因为易失性函数在每次单元格发生变化时都会进行重算,无疑会增加系统的开销。当函数进行简单的计算,而非需要根据其参数所引用的单元格之外的区域而计算时,就无须使用易失性函数。

    展开全文
  • 在处理php数组的时候,有种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三' ), 2=>array( 'id' => 6, 'name' => '李四' ) ); 目的就是要取到key为name的集合,得到这个结果...
  • VBA对Excel文件进行处理的时候,关键字段的号编程时往往是不知道的,需要通过参数设定才能知道,因此,我们编程的时候,就不能用这样的语句取有效行数: lineno = [B65536].End(xlUp).Row  上述语句中的列名“B...
  • VBA 获取最大行数和最大

    万次阅读 2020-01-12 09:19:29
    在EXCEL中,对数据进行定位操作,必然要用到数据区域的最大行和最大,代码如下: columnmax = Range("IV1").End(xlToLeft).Column '取得1行的最大数 columnmax =cells(i,columns.count).end(xltoletf).column 'i行...
  • SubCheckNum() iCount=0 iRow=ActiveSheet.Range("s65535").End(xlUp).Row'取最后一行 iCol=ActiveSheet.Range("dz2").End(xlToLeft).Column'取最后一列 MsgBox"i...
  • VBA获取excel行和

    千次阅读 2016-05-04 23:17:24
    Sub 拷贝信息() Dim workbookTmp As Workbook Dim worksheetTmp ...另外今天练习中遇到个91的错误。...当选了 “设置下条语句” 命令时,在 With 块内指定了行。 With 块必须用 With 语句执行初始化。
  • 首先,将需要拆分的sheet命名为“明细”,接下来运行此代码,按提示操作即可。 在这里插入代码片 Sub chaifen() '定义变量类型 Dim sht, sh1, sh2 As Worksheet ...'程序开始是要求输入按哪一列拆分数...
  • 前几天放假回家,父亲让我写一个可以对EXCEL进行操作的小demo:通过某一列的值寻找该值所在行的所有内容,且复制到另一张表中。 感觉很简单,就答应了 考虑到电脑环境、操作性、简易性等。我决定用VBA来写。毕竟是...
  • 获取指定行列最后个非空单元格 1、到达对象所在区域的边缘 在“A1:H16”的数据中,如何一步到达单元格所在行的最下、上、左、右端,有以下几种方式: 【Crtl】+↑:到达该数据的最上端单元格,其余箭头功能类似...
  • vba遍历数据

    千次阅读 2020-10-09 14:10:13
    Sub funcff() Dim i, j, l, o, d, h l = Columns.Count l = 21 j = 2 o = 22 d = 4 h = 20 For i = 1 To l Cells(h, j).Select j = j + 7 Selection.Copy Cells(o, 1).Select ActiveSheet.Paste ...o = o +
  • Excel VBA某列最后行非空行号

    万次阅读 2016-11-28 00:06:50
    "Cells(Rows.Count, 1)"表示是查找A最后个非空单元格,按的可以改成"Cells(1, Columns.count)" "end(3)"表示的向上查找,也可以写成“end(xlup)”,还有其他3个方向,向下,向左,向右:xldown,xltoleft,...
  • Function getlastcell(mysheet As String, Optional startrow As Integer) As Integer Sheets(mysheet).Select rowcountinu = False If startrow = 0 Then startrow = 2 End If For i = startrow To st...
  • 假如某一列包含多种重复单元,但是重复的单元对应的其它列却不相同,需求便是指定某一列,寻找其中相同的元素,对两行元素进行合并。如下图所示的源数据, 可以看到,该Excel表格的A列有很多重复项,对他们进行合并...
  • VBA判断某列数据重复存在

    千次阅读 2017-07-22 21:59:05
    如果数据重复存在,则将重复数据标红色并打印到另一列
  • vba里的listbox是一个既需要有恶心的控件。 如果你是将二维数组赋值给Listbox.rowsource的话,当需要取得...如果listbox是多列的情况下,将listbox.column属性看作一个二维数组使用,比如获取第一行第一列的值 list
  • Find方法按行查找和按查找的区别 实现代码2 获取工作表总行数 实现代码3 单元格对象的End属性 End属性的局限性 其他获取最后数据行行号的方法 1.定位(SpeciaICells) 2.UsedRange 实现代码4 3. ...
  • 八、对表格或数组进行或求和 函数代码 代码 数据表样子 调用例子 代码 表格操作系列未完,待续! ——专注办公软件的二次开发及培训,你有问题,我有思路! ——微博、微信、CSDN同号:w_dexu。 ——转载请注明...
  • Sub Maco1() For i = 1 To Sheets.Count Cells(i, 1) = Sheets(i).Name Next End Sub
  • 获取某个sheet表最后行的行号,对于使用vba进行循环查找是必经的过程: 通过我最近的学习发现2中方法进行使用,现在分享如下: 如下表格示例: 方法: Public Sub test() Dim lastRow As Long lastRow =...
  • 现希望得知有哪些户的居民已登记,因而希望获取“户号”的不重复值,并存储在J。该如何用VBA实现? 示例数据表 姓名 街路巷 户别 与户主关系 性别 民族 户号 甲1 清水乡双井村 农村...
  • 某一对应:从Excel文件B获取数据到Excel文件A,可以快速进行数据匹配,而且可以在打开或不打开原文档的情况进行。

空空如也

空空如也

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

vba获取某一列