VB如何获得一个字符串的行数和其中任意一行的内容

VB如何获得一个字符串的行数和其中任意一行的内容,第1张

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对象行数,列数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9401936.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存