在对应工作表中粘贴以下代码(不要新建模块!!!)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)If (TargetColumn >= 2 Or TargetColumn <= 8) And TargetRow = 1 Then '选定B1:H1时
Range("A1") = TargetRow 'A1显示选定的行数
Range("A2") = TargetColumn 'A2显示选定的列数
End If
End Sub
'在工作薄的最前面插入一工作表
'在新表的A1、B1分别输入:表名、行数
'选定A1,运行下面的宏
Public Sub hang()
For i = 2 To SheetsCount
r = Sheets(i)CellsSpecialCells(xlCellTypeLastCell)Row
n = Sheets(i)Name
ActiveCellOffset(i, 0) = n
ActiveCellOffset(i, 1) = r
Next
End Sub
请试下这个:
Sub LineCount()
count = 1
str1 = SelectionRange("A1")Value '选定区域中第1个单元格
i = Len(str1)
If i = 0 Then '如果没有内容就是 0 行
count = 0
Else
For j = 1 To i
If If Mid(str1, j, 1) = Chr(10) Then count = count + 1
Next j
End If
MsgBox "行数为:" & count
End Sub
GoodLuck!
----------------------------
惭愧,这几天我花了很多时间来研究这个行数的问题,结果是:没有结果,VBA无法确切地得到这个自动换行的行数!
看来,Excel单元格中的东西,在VBA中只把它作为一个整体处理,也就是一个单元格的属性(Value、Text等),作为一个属性它不是对象,所以它除了一个值之外没有其他的信息可以供VBA来提取,比如:一个单元格中各字符的不同大小、不同颜色、不同字体等。 虽然这些东西我们手工可以在Excel中 *** 作,但VBA却无法 *** 作(VBA只能按单元格来整体处理)
所以,我理解,这个具体行数,是Excel在把数据放入时根据各字符大小和单元格宽度以及数据中是否有换行来临时处理后的一个现象,并没有保存在哪个地方,所以VBA无法获得它。
也许只有自己来按各字符大小和单元格宽度来计算行数了,但这个“各字符大小(同一单元格中各字符大小不一样)”又恰是VBA所无法逐个取得的。
GoodLuck Anyway!
以上就是关于excel中如何通过VBA获取指定范围内鼠标所点击的单元格所在的行数全部的内容,包括:excel中如何通过VBA获取指定范围内鼠标所点击的单元格所在的行数、在excel中如何用VBA取得每页的行数、excel2003中,如何写宏程序,用于返回选定单元格中文本字符串的行数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)