1. vba提取文本中的文字
答案如下
Dim i As Integer=listview.items.indexof(listview.focuseditem)'首先获得选中项的索引
Msgbox(listview.items(i).subitems(0).text)'弹出消息框显示所选择项的第0列的文本。
'LISTVIEW1中有13列
'因为LISTVIEW1中的所有数据,有可能是通过筛选得来的,可能通过搜索得来的
'所以在这里将显示在LISTVIEW1中的数据写入数组ARR中,方便处理这些数据
Dim arr
With ListView1
ReDim arr(1 To .ListItems.Count, 1 To 13)
For i = 1 To UBound(arr, 1) '遍历所有LISTVIEW1数据的行,用 For i = 1 To .ListItems.Count 也可以
arr(i, 1) = .ListItems(i).Text '第一列不一样,无法通过循环得到,只好单取
For j = 2 To 13 '遍历第i行的所有列的数据,共13列,第1列数据已取,从第2列开始
arr(i, j) = .ListItems(i).ListSubItems(j - 1).Text '将i行其他列写入数组中
Next
Next
End
2. vba提取文本中的文字格式
一:利用Word里面的“索引”功能。
1、选中需要提取的文字,执行菜单命令“插入-引用-索引和目录”;
2、在“索引”选项页里面选择单击按钮“标记索引项”;
3、指定“选项”为“当前页”,根据需要可以指定提取之后显示的页码格式为加粗或者倾斜,单击“标记”;
4、此时标记索引项窗口并不会关闭,而且你还能在文档中找到并选中下一个需要提取的文字,重复步骤3;
5、如果没有其它需要提取的文字了,单击“关闭”;
6、在需要插入索引表的地方,执行菜单命令“插入-引用-索引和目录”,根据需要设置索引表的格式(比如分栏、对齐、缩进等风格),然后单击“确定”。
这样所有标记过索引的文字以及它们所在的页码就都提取出来了。
如果需要提取的文字有很多,那么或许也可以用VBA宏来自动标记索引(即相当于自动完成上面的1-5步骤)。但是前提是这些文字必须都有非常特定的格式,即可以保证当前文档中凡是具有这个格式的文本,都是需要提取索引的文本。
3. vba 读取文本文件
比如说可以赋值给一个参数,例 a=userform1.textbox1.value
4. vba提取Word指定文字
打开一个word文件,按键盘上alt+F11键。
插入一个模块,粘贴下面的代码。
将代码里面的【原来的字符】和【要替换的字符】修改成自己要替换的内容和被替换的内容会。
按f5选择要批量修改的文件所在的文件夹。完成
Sub 批量替换()
Application.ScreenUpdating = False
Dim MyPath As String
Dim i As Integer
Dim myDoc As Document
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "选择目标文件夹"
If .Show = -1 Then
MyPath = .SelectedItems(1)
Else
Exit Sub
End If
End With
With Application.FileSearch
.LookIn = MyPath
.FileType = msoFileTypeWordDocuments
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Set myDoc = Documents.Open(Filename:=.FoundFiles(i), Visible:=False)
With myDoc.Range.Find
.ClearFormatting
.Replacement.ClearFormatting
.Execute findtext:="原来的字符", replacewith:="要替换的字符", MatchWildcards:=False, Replace:=wdReplaceAll
End With
myDoc.Close True
Next
End If
End With
Application.ScreenUpdating = True
End Sub
5. vba提取文本中的文字内容
在EXCEL中按ALT+F11组合键,调出VBA窗口,插入一个模块,把下面代码复制进去。
Sub 导出批注()On Error Resume NextSet s = Range("a1:C10") '读取批注的范围For Each t In st.Value = t.Comment.TextNextEnd Sub回到EXCEL窗口,按“工具-宏-宏”,在对话框选“导出批注”宏执行即可。说明:执行后,如果某格中有批注,就把批注内容放入该单元格中,单元格中的原内容会被删除。注意执行前做好数据备份
6. vba提取单元格内文本
假设把 sheet1 中A1单元格赋值给X变量,语句如下:
X = sheets(1).range("A1"
)假设X经过计算后,得到一个变量值Y,那么把Y赋值给A1,语句为:sheets(1).range("A1")=Y这样就实现了单元格与变量之间的相互赋值关于此例中涉及到的VBA中变量的相关知识:
1、什么是变量变量是一个命名的内存位置。是在程序或代码运行过程中,用于临时存储数据,并且其存储的数据可以根据需要发生改变的一个命名项目。
变量由名称(变量名)和数据类型指定:变量名——用来引用变量数据类型——确定变量所能存储信息的种类以及所占存储空间的大小2、变量的命名规则(1)名称是由字母(A-Z,a-z)或数字和下划线“_”的任意组合。
(在Excel 2002以后的版本中也可以包含中文);最后一个字符可以是类型说明符;
(2)变量名的长度不得超过255个字符(3)变量名在有效的范围内必须是唯一的。
有效的范围就是引用变量可以被程序识别的作用范围 例如一个过程、一个窗体等等;
(4)变量名不能是VBA中的保留字(关键字),也不能是末尾带类型说明符的保留字,但可以把保留字嵌入变量名。说明:
(1)变量名是不区分大小写的。如ABC、aBc、abc等都是一样的;
(2)定义和使用变量时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称;
(3)根据需要混合使用大小写字母和数字。如果需要使用多单词组,变量中每个单词的第一个字母大写,例如:DataTemp表示临时数据,也可以两个单词中下划线分隔,例如:Last_Num;
(4)对于变量名也有更好的建议,每个变量名以两个或三个字符缩写开始,这些字符缩写对应于变量要存储数据的数据类型。
例如strWorksheet as string表用来示工作表名,前缀str表示当前变量的类型。
7. 如何用vba提取想要的文字
1、LEFT函数:
用法:LEFT(要提取字符所在单元格,从左侧开始提取的个数)
例如:=LEFT(A1,2) 意思是从A1单元格提取前两个字符。
2、RIGHT函数:
用法:RIGHT(要提取字符所在单元格,从右侧开始提取的个数)
例如:=RIGHT(A1,2) 意思是从A1单元格提取最后两个字符。
3、MID函数:
用法:MID(要提取字符所在单元格,开始位置,提取个数)
例如:=MID(A1,2,2) 意思是从A1单元格提的第二个单元格开始,提取两个字符,也就提取A1单元格第2个和第3个字符。
注:用MID函数,也可以替代前两个函数,比如:=MID(A1,1,2)与=LEFT(A1,2)的结果是一样的,再比如:=MID(A1,LEN(A1)-2+1,2)与=RIGHT(A1,2)的结果是一样的只是这里用到LEN函数,其作用是取得单元格字符串的长度。
4、提取后的字符合并:
字符合并要用到连接符号:&
比如:=LEFT(A1,2)&RIGHT(A1,2) 意思是把A1单元格的前两个和最后两个字符,提取出来组成一个新的字符。
下面给出两种方法:
方法1. 如果会用vba的话可以考虑自定义函数:
按alt+f11唤出vbe编辑窗口,插入-模块,将下方代码贴入:
Public Function Zstr(str As String, tj As String) With CreateObject("Vbscript.Regexp") .Pattern = "^(\d+).*" & tj & ".*" .Global = True .MultiLine = True .ignorecase = False If .test(str) Then Set mh = .Execute(str) Zstr = mh(0).submatches(0) Else Zstr = CVErr(xlErrNA) End If End WithEnd Function回到工作表中
在c1里输入如下公式:=zstr(A1,B1)
方法2. 公式(略长):
=--LEFT(TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)),MAX(1,FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)))-200),FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200))))),FIND("=",TRIM(MID(SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)),MAX(1,FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200)))-200),FIND(B1,SUBSTITUTE(A1,CHAR(10),REPT(" ",LEN(A1)+200))))))-1)
假设是A列
i=range("a65536").end(xlup).row()
msgbox range("A" & i).value
msgbox range("A" & i-1).value
如果ID值都是4位数的话,那么用以下代码就可以了:
Sub www() Dim y% For y = 1 To Cells(1, Columns.Count).End(xlToLeft).Column Cells(2, y) = Right(Cells(1, y), 4) Next yEnd Sub
excel提取单元格内某字符后面一位的数据全部提取出来 用vba实现 - : C1=IF(ISERROR(FIND("张三",A1)),"",MID(A1,FIND("张三",A1)+2,1))&IF(OR(ISERROR(FIND("张三",A1)),ISERROR(FIND("张三",B1))),"","+")&IF(ISERROR(FIND("张三",B1)),"",MID(B1,FIND("张三",B1)+2,1)) 然后下拉 这个可以实现提取A和B列中第一个张三后面的数字
EXCEL怎么提取单元格内某字符后面的所有文字 - : =MID(A1,FIND("房",A1)+1,LEN(A1)-FIND("房",A1))
EXCEL中如何提取单元格中最后一个字符 - : 方案a:复制到记事本中,再从记事本复制到word中.设置段落格式为:右对齐.将插入点置于最后一个字符右侧,按住alt不放,压住鼠标左键,选中要删除的区域,删除.然后复制回excel 方案b:假设数据在a列,则到一个空列,输入=left(a1,len(a1)-1) 向下填充公式,就得到你要的结果了.
excel怎样获取单元格中特定字符前面或者后面的内容 - : 方法一:用函数=MID(A1,FIND("|",A1)+1,99),参数你根据自己的事情情况调整... 方法二:用查找替换功能.先把这列复制两列,然后以列为单位去查找,查找*|,替换,则可得到|后面的字符,查找|*替换,则可得到|前面的字符
EXCEL怎么提取单元格内某字符后面的所有文字: 假设 ...房顶上...这个在a1单元格,现在在a2单元格提取, 在a2单元格输入下列公式: =right(a1,len(a1)-find("房",a1)+1)
在EXCEL表格里,怎么提取某一单元格中的一部分文字 - : 用mid(),比如:从单元格a1(内容为“在excel表格里”)提取“excel”,可以用公式:=mid(a1,2,5),表示在a1中,以第2个字符开始的5个字符组成的字符串.
excel中提取单元格内指定最后一个符号前的内容 - : 假设字符数不超过100个,用:=LEFT(A1,LOOKUP(1,0/(MID(A1,ROW($1:$100),1)="#"),ROW($1:$100))-1)
excel中如何提取某个字符前面、后面的字符,长度不一、每个单元格都有这个字符: 前面的,=LEFT(A1,FIND(”@”,A1)-1),@就是那个字符.后面的,=MID(A1,FIND(”@”,A1)+1,99)
EXCEL 单元格中有两个字符,如何提取其中一个字符后面的内容: 如果是提取最后的数字,可用下面公式:=LOOKUP(9^9,--RIGHT(A1,ROW(1:99)))也可用下面公式:=--MID(A1,FIND("x",SUBSTITUTE(A1,"x","",1))+2,99)数字99可以换成适当的数,如12.如果提取文本,可用第二个公式,将前面的“--”去掉.
如何用最简单的公式截取Excel单元格内最后一个空字符后面的所有信息. - : =TRIM(RIGHT(SUBSTITUTE(A1," ",REPT(" ",100),LEN(A1)-LEN(SUBSTITUTE(A1," ",))),100))
觉得有用点个赞吧
8. word vba 获取文本框文字
和窗体控件类似处理,可用如下方法:在每个文本框获得焦点事件中将文本框名称赋值给X(X应为全局变量),比如Private Sub TextBox1_GotFocus() X = TextBox1.NameEnd Sub
9. vba提取中文字符
Sub Example()
Dim myObject As Object
'对于浮动式文本框控件
Set myObject = ActiveDocument.Shapes(1).OLEFormat.Object
MsgBox myObject.Text
'对于嵌入式文本框控件
Set myObject = ActiveDocument.InlineShapes(1).OLEFormat.Object
MsgBox myObject.Text
'对于word的文本框图形(非控件)
Set myObject = ActiveDocument.Shapes(1).TextFrame.TextRange
MsgBox myObject.Text
End Sub
10. vba提取字符串中的字母
先说结论,Excel vba里将字符串转换为数值的方法如下。首先我们打开Excel vba工具,然后再设置页面,找到插入按钮,在插入按钮当中找到符号,我们在单机电脑左键,选定固定的字符串,单击右键选定替换模式,这样就可以将字符串转换为数值。
- 相关评论
- 我要评论
-