首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用access VBA查找excel中的最后一行/最后一列

在使用Access VBA查找Excel中的最后一行或最后一列时,可以使用以下代码:

  1. 查找最后一行:
代码语言:txt
复制
Dim xlApp As Object
Dim xlWorkbook As Object
Dim xlWorksheet As Object
Dim lastRow As Long

Set xlApp = CreateObject("Excel.Application")
Set xlWorkbook = xlApp.Workbooks.Open("路径/文件名.xlsx")
Set xlWorksheet = xlWorkbook.Worksheets("工作表名称")

lastRow = xlWorksheet.Cells(xlWorksheet.Rows.Count, 1).End(-4162).Row

xlWorkbook.Close False
xlApp.Quit

Set xlWorksheet = Nothing
Set xlWorkbook = Nothing
Set xlApp = Nothing

MsgBox "最后一行是:" & lastRow

这段代码首先创建了Excel应用程序对象(xlApp),打开了指定的Excel文件(xlWorkbook),并且选择了指定的工作表(xlWorksheet)。然后,使用xlWorksheet.Cells(xlWorksheet.Rows.Count, 1).End(-4162).Row获取到最后一行的行号,并将其存储在变量lastRow中。最后,关闭Excel文件和应用程序,并释放相关对象的引用。弹出消息框显示最后一行的行号。

  1. 查找最后一列:
代码语言:txt
复制
Dim xlApp As Object
Dim xlWorkbook As Object
Dim xlWorksheet As Object
Dim lastColumn As Long

Set xlApp = CreateObject("Excel.Application")
Set xlWorkbook = xlApp.Workbooks.Open("路径/文件名.xlsx")
Set xlWorksheet = xlWorkbook.Worksheets("工作表名称")

lastColumn = xlWorksheet.Cells(1, xlWorksheet.Columns.Count).End(-4161).Column

xlWorkbook.Close False
xlApp.Quit

Set xlWorksheet = Nothing
Set xlWorkbook = Nothing
Set xlApp = Nothing

MsgBox "最后一列是:" & lastColumn

这段代码与查找最后一行的代码类似,只是改为使用xlWorksheet.Cells(1, xlWorksheet.Columns.Count).End(-4161).Column来获取最后一列的列号,并将其存储在变量lastColumn中。

上述代码中使用了Excel应用程序对象(xlApp),打开了指定的Excel文件(xlWorkbook),并选择了指定的工作表(xlWorksheet)。然后,使用End和常量-4162(xlUp)或-4161(xlToLeft)来查找最后一个非空行或列的位置。最后,关闭Excel文件和应用程序,并释放相关对象的引用。弹出消息框显示最后一行或列的行号或列号。

这是使用Access VBA查找Excel中最后一行和最后一列的一种常用方法。注意,路径/文件名.xlsx、工作表名称需要根据实际情况进行替换。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel公式技巧104:查找任意月最后一天

学习Excel技术,关注微信公众号: excelperfect 下面是计算任何月份最后一天一个方便技巧。...假设y和m分别是想要查找最后一天日期中年和月,那么: =DATE(y,m+1,0) 使用0作为日参数值,返回前一个月最后一天日期。...如果不是年和月,如果知道一个日期并且想找到该日期所在月最后一天日期,可以使用: =EOMONTH(date, 0) 如果想要知道某月最后一个工作日日期,可以使用: =WORKDAY(DATE(y...将假期列表传递给WORKDAY函数最后一个参数,例如: =WORKDAY(DATE(y, m+1, 1), -1, E1:E20) 公式,E1:E20是包含假期日期列表单元格区域。...此外,不是所有人都将星期六和星期日作为周末,如果要处理不同周末类型,例如,有人在星期二不工作,也有人工作时间是星期日至星期四,那么可以使用WORKDAY.INTL函数: =WORKDAY.INTL(

1.9K20
  • vi跳到文件一行最后一行

    由于vi编辑器不能使用鼠标,所以一个大文件如果要到最后一行只用键盘下键的话会是一个很痛苦过程,还好有各种比较快捷方法归我们使用: 1. vi 编辑器跳到文件一行:    a 输入 :0 或者...:1 回车    b 键盘按下 小写 gg 2.vi 编辑器跳到文件最后一行:    a 输入 :$ 回车    b 键盘按下大写 G    c 键盘按 shift + g (其实和第二种方法一样...) Vim快速移动光标至行首和行尾 1、 需要按行快速移动光标时,可以使用键盘上编辑键Home,快速将光标移动至当前行行首。...除此之外,也可以在命令模式中使用快捷键”^”(即Shift+6)或0(数字0)。 2、 如果要快速移动光标至当前行行尾,可以使用编辑键End。也可以在命令模式中使用快捷键””(Shift+4)。...与快捷键”^”和0不同,快捷键””前可以加上数字表示移动行数。例如使用”1”表示当前行行尾,”2”表示当前行一行行尾。

    10.2K40

    Excel实战技巧55: 在包含重复值列表查找指定数据最后出现数据

    图1 下面,我们分别使用公式和VBA来解决。...得到一个由行号和0组成数组,MAX函数获取这个数组最大值,也就是与单元格D2值相同数据在A2:A10最后一个位置,减去1是因为查找是B2:B10值,是从第2行开始,得到要查找值在...组成数组,由于这个数组找不到2,LOOKUP函数在数组中一直查找,直至最后一个比2小最大值,也就是数组最后一个1,返回B2:B10对应值,也就是要查找数据在列表中最后值。...图3 使用VBA自定义函数 在VBE输入下面的代码: Function LookupLastItem(LookupValue AsString, _ LookupRange As Range,...Excel内置函数一样,使用公式: =LookupLastItem($D$2,$A$2:$B$10,2) 结果如下图4所示。

    10.8K20

    Excel公式:获取句子位于最后3个典型公式

    标签:Excel公式,数组公式 好久没有碰复杂公式了,这不,手又有点痒痒了。这里示例来自excelunplugged.com,权当练练手,活动活动头脑。...如下图1所示,将列A句子最后一个单词提取到列B。(这里最后一个单词用数字代替) 图1 解决公式貌似复杂,实则不难。...图2 注意,输入完后按Ctrl+Shift+Enter组合键,Excel会自动添加两侧花括号。...即为最后一个分隔单词空格在句子位置。...本文配套示例工作簿已放置在知识星球App完美Excel社群,有兴趣朋友可以前往下载。 欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    96240

    Excel公式技巧62:查找第一个和最后一个匹配数据

    学习Excel技术,关注微信公众号: excelperfect 在使用VLOOKUP函数查找数据时,如果多于一个匹配值,如何获取第一个匹配值或者最后一个匹配值。...如果将数据进行排序,并执行近似匹配查找,将会获取最后一个匹配值,如下图2所示工作表。 ? 图2 我们使用公式: =VLOOKUP(E3,$B$3:$C$9,2) 来查找“脐橙”价格。...将VLOOKUP函数第4个参数忽略或指定为TRUE,即近似匹配,此时返回最后一个找到匹配值。因为执行近似匹配查找时,Excel将找到大于查找值并返回该值前一个值。...图4 在单元格F3输入公式: =VLOOKUP(E3,$B$3:$C$7,2,TRUE) 下拉至F5。 还可以使用INDEX/MATCH函数来查找多个匹配数据最后一个,如下图5所示。 ?...图6 如果数据没有排序,想要查找最后一个匹配值,也可以使用LOOKUP函数,如下图7所示。 ?

    9.5K20

    Excel公式技巧:获取最后5个数值3个数平均值

    最近,使用工作表记录了员工日常表现,表现是用分数来评估。然而,记录并不连续,并且每位员工记录次数又会有不同,如下图1所示。 图1 我想得到每位员工最后5次得分,去除最高分和最低分后平均值。...首先,我们需要确定最后5位数值。...但是,每位员工得分次数不一样,且输入也不一定是连续,例如代号A员工最后5位数值位于B2:F2,而代号B员工最后5位数值位于K3:Q3,一个起始于第2列,一个起始于第11列,如何获取这个起始位置是关键...) 会得到: {1,2,3,4,5,6,0,0,9,10,11,0,0,14,15,16,17,0,0,0,0,0,0,0,0,0} …… 这样,我们使用LARGE函数取这个数组第5大值,也即最后5...位数值起始位置: LARGE(COLUMN(A3:Z3)*(A3:Z3""),5) 获得起始位置后,我们使用INDEX函数返回该位置单元格: INDEX(LARGE(COLUMN(A3:Z3)*

    96530

    个人永久性免费-Excel催化剂功能第114波-前后选择行或列互换操作

    2019年最后一天,从岁首到年终,Excel催化剂一直在产出,让喜欢的人更喜欢。...功能说明 在偶尔刷别人VBA公众号文章时,刷到两列交换数据文章,然后想想自己日常工作,好像也有那么一些时候会用到,就顺手也做到Excel催化剂上来,当做完后,要开始写文章时,发现还真没想到有什么场景特别对此功能刚需...推荐查找该功能方式:输入关键字即得,无需记住按钮所在位置。...使用方法传送门:个人永久性免费-Excel催化剂功能第113波-将帮助文档主动权归还用户手中 实现原理为:先选定一行一列内容,再按程序提示,选择另一行或列任意单元格,最终程序将其两行或两列数据互换位置...防止整列整行选定操作,同样作了UsedRange交集限定操作。 互换操作,仅适合一次交换一行一列内容,不能选取多行或多列。

    92920

    在排序数组查找元素第一个和最后一个位置

    在排序数组查找元素第一个和最后一个位置 给定一个按照升序排列整数数组 nums,和一个目标值 target。找出给定目标值在数组开始位置和结束位置。...刚刚接触二分搜索同学不建议上来就像如果用一个二分来查找左右边界,很容易把自己绕进去,建议扎扎实实写两个二分分别找左边界和右边界 寻找右边界 先来寻找右边界,至于二分查找,如果看过704.二分查找就会知道...总结 初学者建议大家一块一块去分拆这道题目,正如本题解描述,想清楚三种情况之后,先专注于寻找右区间,然后专注于寻找左区间,左右根据左右区间做最后判断。...target; // 2、如果二分查找失败,则 binarySearch 返回 -1,表明 nums 没有 target。...target; # 2、如果二分查找失败,则 binarySearch 返回 -1,表明 nums 没有 target。

    4.7K20

    在排序数组查找元素第一个和最后一个位置

    前言: 这是一道给很经典二分查找题目,并且该二分查找算法不同于简单二分,是二分查找进阶版本。 一、题目描述 34....在排序数组查找元素第一个和最后一个位置 给你一个按照非递减顺序排列整数数组 nums,和一个目标值 target。请你找出给定目标值在数组开始位置和结束位置。...如果数组不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 算法解决此问题。...二、题目解析 注意只要数据中国可以找到具有二段性,即可适用二分查找算法!!! 我们将这道题拆解成两个部分,第一部分就是求该元素左端点,另一部分就是求该元素右端点。...第二步就是普通二分算法代码 注意这里有一个细节,跟普通二分查找算法不同,也是后面细节“万恶之源”。

    10010

    VBA专题11:详解UsedRange属性

    使用UsedRange属性,可以方便地找到工作表使用一行、第一列最后一行最后一列,统计已使用区域行列数以用于循环处理,等等。...图1 从上图1可以看到,VBA尝试使用电子表格上数据来计算第一个单元格和最后一个单元格,并选择该区域范围内所有内容。...Debug.Print rng.Address 对于上图2所示工作表,返回字符串C1:F25,该区域一行(是工作表第1行),第一列(是工作表列C),最后一行(是工作表第25行),最后一列(是工作表列...应用4:找到工作表已使用区域最后一行最后一列 使用下面的代码,获取工作表已使用区域最后一行最后一列: Dim rng As Range Dim firstRow As Long, lastRow...找到工作表已使用区域最后一行最后一列后,就可以知道其最后一个单元格了。

    7.8K32

    使用VBA查找并在列表框显示找到所有匹配项

    标签:VBA,用户窗体,列表框 有时候,我们想从数据表搜索指定内容,但匹配项往往不只一项,而我们想要将匹配项全部显示出来,如下图1所示。...图1 在Excel,有很多方法可以实现,这里使用用户窗体和VBA代码来完成。 示例数据如下图2所示。 图2 单击“查找”按钮,弹出我们所设计用户窗体如下图3所示。...图3 其中,最主要查找”按钮对应代码如下: Private Sub SearchBtn_Click() Dim SearchTerm As String Dim SearchColumn...,即如果某人正在搜索位置,则仅在位置列搜索 With Range("Table1[" &SearchColumn & "]") ' 查找第一个匹配项 Set RecordRange...Results.AddItem Results.List(RowCount, 0) = "没有找到" End If End With End Sub 代码

    13.1K30

    Excel VBA之Find

    Excel VBA之Find expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase,...若为 True,则进行区分大小写查找。默认值为 False。 MatchByte Variant 类型,可选。仅在选择或安装了双字节语言支持时使用。...使用,因为我们工作表中常常在最后会写一此“备注”,我们在取数据时候,备注与后面的东西是没用,所以我们要取到备注以上东西,以"金额合计"或“合计”为最后一行号 ====例子:代码==== Sub...===有时用以下代码==【收藏】 ’’’’’’’’’’’’’’’’’’’’查找A列最后一行号或第一行最后一列号 MsgBox "A列最后1行:" & Range("A1048576").End(xlUp...= sh.UsedRange.Rows.Count 'getcol1 = sh.UsedRange.Columns.Count ’’’’’’’’’’’’’’’’’’’’查找A列最后一行

    2.1K20

    刷题2:在数组查找元素第一个和最后一个位置

    题目:给定一个整数数组 nums, 和一个目标值 target。找出给定目标值在数组开始位置和结束位置。...2.要求target在数组开始位置和结束位置,我们可以先找出来target在list里面的下标位置,把这些下标位置放到list里面,我们去取list里面的第一个元素和最后一个元素,就是对应开始位置和结束位置...那么我们就可以上手去实现我们代码了。 从这期开始,我们代码将用python 和java两个版本去实现,同时从两方面去提高我们,同时 也面向了两门语言学习者。...我们可以看到目前是没有发现问题。这样,python版本实现完毕, 接下来我们去看看,对应java版本是怎么实现。...那么我们测试完毕,根据测试覆盖率来说,我们目前测试是已经完成了覆盖了百分之百路径和代码。 后续会陆续给大家分享更多题目,更多代码,大家一起成长,一起刷题。

    2K20

    Excel揭秘24:使用SpecialCells方法带来后果

    学习Excel技术,关注微信公众号: excelperfect 在编写VBA代码处理工作表单元格时,经常会使用到SpecialCells方法来获取特定单元格,然而,使用该方法会引起一些“副作用”,我们还是了解清楚比较好些...其实质是Range.SpecialCells背后代码设计不佳造成。 ? 图2 Range.SpecialCells对应着Excel“定位条件”功能。...在Excel按下F5键,单击“定位条件”按钮,可以看到如下图3所示“定位条件”对话框。当用户尝试通过该对话框访问特殊单元格时,可以选择这些单元格,但是当我们通过代码访问它们时,就不会发生。 ?...一次查找最后一行,一次查找最后一列,以便它们相交以获得最后一个单元格。...注:本文学习整理自colinlegg.wordpress.com,一个很有意思博客网站,作者探讨了很多使用Excel时不为人知地方。

    1.1K20

    Python对比VBA实现excel表格合并与拆分

    1.2.VBA实现表格合并 2.Excel表格拆分     2.1.Python实现表格拆分     2.2.VBA实现表格拆分 1.Excel表格合并 我们在日常工作中经常会导出一些数据,但是这些数据较大可能是按照某个分类形成单独表格...VBA实现表格合并 VBA实现表格合并核心思想 遍历全部表格,然后将每个表格数据复制到汇总表,每次在复制时候从第一个为空行开始 遍历用 Dir FileName = Dir(ThisWorkbook.Path...LastRow, LastCol As Long     Dim Sh, Sht As Worksheet     'Sh指代当前活动页     Set Sh = ActiveSheet     '当前活动页最后一行...    LastRow = Sh.Cells(Rows.Count, ).End(xlUp).Row     '当前活动页最后一列     LastCol = Sh.Cells(, Columns.Count...'从第2行找到最后一行     For i =  To LastRow         '查找这个要拆分行,看它在不在字典里         TempStr = CStr(Sh.Cells(i, Col

    3K31
    领券