用VBA得到EXCEL表格中的行数和列数N种方法

  每种方法中上面的是 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。

原文地址:http://lightwend.blog.163.com/blog/static/1074348802009523102343637/

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sub ExtractExcelDataToWord() ' 声明变量 Dim excelFilePath As String Dim wordFilePath As String Dim wordApp As Object Dim wordDoc As Object Dim excelApp As Object Dim excelWorkbook As Object Dim excelWorksheet As Object Dim tableRange As Object Dim tableData As Variant Dim i As Integer Dim j As Integer Dim rowCount As Integer Dim columnCount As Integer ' 设置文件路径 excelFilePath = "D:\data.xlsx" wordFilePath = "D:\output.docx" ' 创建Word应用程序 Set wordApp = CreateObject("Word.Application") ' 打开Word文档 Set wordDoc = wordApp.Documents.Open(wordFilePath) ' 创建Excel应用程序 Set excelApp = CreateObject("Excel.Application") ' 打开Excel工作簿 Set excelWorkbook = excelApp.Workbooks.Open(excelFilePath) ' 指定工作表 Set excelWorksheet = excelWorkbook.Worksheets(1) ' 获取表格区域 Set tableRange = excelWorksheet.UsedRange ' 获取表格数据 tableData = tableRange.Value ' 获取表格行数列数 rowCount = UBound(tableData, 1) columnCount = UBound(tableData, 2) ' 在Word文档创建表格 wordDoc.Tables.Add Range:=wordDoc.Range(0, 0), NumRows:=rowCount, NumColumns:=columnCount ' 将表格数据添加到Word表格 For i = 1 To rowCount For j = 1 To columnCount wordDoc.Tables(1).Cell(i, j).Range.Text = tableData(i, j) Next j Next i ' 保存Word文档 wordDoc.Save ' 关闭Word文档和应用程序 wordDoc.Close wordApp.Quit ' 关闭Excel工作簿和应用程序 excelWorkbook.Close excelApp.Quit ' 释放对象 Set wordDoc = Nothing Set wordApp = Nothing Set excelWorksheet = Nothing Set excelWorkbook = Nothing Set excelApp = Nothing ' 提示完成 MsgBox "数据已提取到Word文档。" End Sub

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值