
private
sub
form_load()
dim
zifu
as
string
zifu
=
"nihao:
hao"
msgbox
split(zifu,
":")(1)
'将字符按冒号分割,然后输出最后的元素hao
'或者
msgbox
mid(zifu,
7)
'从左往右开始从第七个字符开始取,直到最后
end
sub
MsgBox Range("a65525")End(xlUp)Row
获取A列最大已用行 以上为excel2003,如2007以上,65525改为1048576。
如要获取整张表格已用最大行,例如A列无数据,但其他列有数据,可用如下:
Msgbox UsedRangeRowsCount
先创建Excel对象,Dexcel As New ExcelApplication,然后再在Dexcel中打开工作簿,再判断行、列中是否有数值存在。例:if Dexcelcells(i,p)="" then
Dim rng As Range
Dim i As Integer, j As Integer
Set rng = xlActiveSheetUsedRange
i = rngRowsCount '已使用的行数
j = rngColumnsCount'已使用的列数
但是建议你不使用这种方式,比如你的excel有3行,然后你在第5行里写入数据,然后再把写的数据删了,此时得到的行数还是5只要用过了它就算在内
for i = 1 to 100 if cells(i,1)value="" then'i代表行,1代表列 cells(i,1)value = "2" end if next i
关键,每行的末尾有一个回车符号,(当然,有可能最后一行没有回车);
VB的回车符号,用常量符号 VBCrLf 表示,也可以用: Chr(13) & Chr(10)表示。
所以,你可以使用 Instr() 函数,或者其它方法,搜索Text1里有几个 VBCrLf 的方法来获得行数。
'获得光标位置(按字节计算,起如行和起始列均为0)
Private Function GetCurPos(ptPos As POINTAPI) As Long
Dim nLine As Long, nCol As Long
Call SendMessage(MeText1hwnd, EM_GETSEL, 0, ptPos)
nLine = SendMessage(MeText1hwnd, EM_LINEFROMCHAR, ptPosx, ByVal 0&) '获得行号
nCol = ptPosx - SendMessage(MeText1hwnd, EM_LINEINDEX, -1, 0) '获得列号
GetCurPos = ptPosx '光标位置(按字节计算)
ptPosy = nLine
ptPosx = nCol
End Function
'获得光标位置(按字符计算)
Private Function GetCurPosCh(ptPos As POINTAPI) As Long
Dim nLine As Long, nCol As Long
Dim ByteBuffer() As Byte
SendMessage MeText1hwnd, EM_GETSEL, 0, ptPos
nLine = SendMessage(MeText1hwnd, EM_LINEFROMCHAR, ptPosx, ByVal 0&) '获得行号
nCol = ptPosx - SendMessage(MeText1hwnd, EM_LINEINDEX, -1, 0)
ReDim ByteBuffer(1024)
ByteBuffer(1) = 4
SendMessage MeText1hwnd, EM_GETLINE, nLine, ByteBuffer(0)
ReDim Preserve ByteBuffer(nCol)
nCol = Len(StrConv(ByteBuffer, vbUnicode)) - 1 '获得列号
GetCurPosCh = MeText1SelStart '光标位置(按字符计算)
ptPosy = nLine + 1
ptPosx = nCol + 1
Erase ByteBuffer
End Function
Call GetCurPosCh(ptPos)
GetTextInfo = " 第 " & ptPosy & " 行 , 第 " & ptPosx & " 列"
vba excel怎么获取指定工作表的行数,列数
工作表Sheet1的A列的数据行数
Sheet1[A65536]End(3)Row
vba 取行数
Sheets(1)[A65536]End(xlUp)Row '''该列最后一行
vba 取列数
Cells(14, 256)End(xlToLeft)Column'''该14行最后一列
Excel vba如何获取工作表的有效列数Sub jiji()
Dim i
i = Sheet1Range("iv1")End(xlToLeft)Column
MsgBox "第一行最后一个非空单元格列号为" & i
End Sub
如何利用VBA获取指定工作簿中的工作表名称
excel中如何按特定名称快速建立工作表的解决方法如下: 1、可以用vba做一个宏来处理, 2、宏的具体内容如下: 假设需要创建6个工作表 表名放在第一表的A1到A6,用下VBA Sub b() Dim i As Integer For i = 1 To 6 Sheets(i)Name = Sheets
获取指定的工作簿中工作表名称而非本工作簿中表的名称,下面的代码可以使用:
Sub 提取name()
Dim wk As Workbook
Dim sh As Worksheet
Dim rw As Byte
Set wk = WorkbooksOpen("D:\函数习题\第1章 函数基础xls")
For Each sh In Workbooks(2)Worksheets
rw = rw + 1
ThisWorkbookSheets(1)Range("a" & rw) = shName
Next sh
wkClose True
End Sub
新建一个工作簿,在VBA中新建一个模块,将上面的代码复制进去。记住要根据自己指定的工作簿改变一下workbooksopen后面的路径。结果会在新建工作簿中sheets1a列罗列出工作表名称。
如何再VBA里获取当前工作表里数据的行数和列数?iRows=activesheetusedrangerowscount
iColumns=activesheetusedrangeColumnscount
'如果表格前面的几行或几列可能是空的,需要获得最下面的行数和最右面的列数:
with activesheetusedrange
iEndRow=rowscount+row-1
iEndColumn=Columnscount+column-1
end with
Excel 求助:让VBA中让宏在指定工作表进行假定第一表是Sheet3,另外一个表sheet2另外一个表的 A1=index(Sheet3!A:A,match(Sheet2!b1,Sheet3!B:B,0)) Sheet2中A列手工输入,B2=VLOOKUP($A2,Sheet1!$A:$E,COLUMN(),)向右向下复制公式
如何自定义excel工作表行数和列数根据Excel版本的不同,工作表行数和列数会有差别,但都是固定的,可不是自定义所能改变的。
2003版:65536行,256列。
2007及以上版:1048576行,16384列。
如何用公式提取指定工作表的表名称需要写个公式来获取指定工作表的名称
以上就是关于VB如何获得一个字符串的行数和其中任意一行的内容全部的内容,包括:VB如何获得一个字符串的行数和其中任意一行的内容、vb获取excel有多少行、如何在vb中获得Excel对象行数,列数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)