篇首语:本文由小编为大家整理,主要介绍了在excel中如何用vba来实现查找特定的字符串?相关的知识,希望对你有一定的参考价值。
例如excel中有一列的值分别是
invalidtype,
invalidstatus,invalidtype.
invalidstatus,
invalidtype.invalidstatus,invalidcode
如何在这些单元格中判断是否含有特定的字符串invalidstatus?
希望高手帮忙,这个问题比较急,在线等待···
1、首先打开需要编辑的Excel表格,进入到编辑的的页面中。
2、然后在弹出来的窗口中,鼠标右键单击工作表,选择打开“查看代码”。
3、然后在弹出来的窗口中,点击输入代码:
Sub AAA()
Dim I As Long
For I = 1 To 1000 '行 范围,自己修改
If InStr(Range("A" & I), "invalidstatus") > 0 Then
Range("A" & I).Font.Color = vbRed
End If
Next
End Sub
4、然后进行保存,点击运行就完成了。
参考技术A Sub Main()这个A是代表的循环列吧。试验了一下是可以出来的,非常感谢···
我还有一个问题想请教一下。如果有一列类似于:
1.10089E+15
47GS794600000000
4.19504E+14 ,
如何 用vba的函数把这一列的所有科学计数法改成普通的一般的计数,类似于:
1100890502000600
47GS794600000000
419504100000000
非常感谢你。这个问题比较急,我在线等你哈···
试试这个,没有做过太多验证,你自己测试看看数据对不对再用
Sub AAA()
Dim Ar
Ar = Columns("A").Formula
Columns("A").NumberFormatLocal = "@"
Columns("A") = Ar
End Sub
谢谢,没用过此类的函数,Ar的类型是?测试了一下,这个貌似不可以,Ar = Columns("f").Formula的时候就有error,是runtime error 91:object variable or with block variable not set。 不知道该如何下手。麻烦你帮忙啦···
追答方便的话加我看看。不然发附件到我邮箱。我这边测试没问题。
QQ邮箱 987122817@qq.com追问不好意思哈,我重新试了下,好像可以了,非常感谢,真的非常感谢。希望以后可以多多向你请教学习···
额外想问问,这种问题有没有类似于不是这种修改格式,而是通过逐行抽取的时候,以text的形式来实现的方法?
要么设置单元格格式为文本,要么在字符前面加上逗号。不懂你的以 text形式是什么意思
Sub AAA()
DIM I AS LONG
I=1
MSGBOX =range("A" & I).Formula
END SUB
你读取对应单元格的 Formula 属性就可以了。
利用Workbooks().Worksheets().Cells(iRow, 2).value这种形式,应该是string型,想直接在前面加逗号,成Workbooks().Worksheets().Cells(iRow, 2).value = " ' " + Workbooks().Worksheets().Cells(iRow, 2).value,这样会报错:application-defined or object-defined error;想转换成long型,有workflow的error,有人建议改成text试试,但是还没有实践过。
还有就是msgbox没有定义,我测试的时候不能通过,需要帮忙···
不会啊,我这样测试没错啊。看看你的Irow 是不是0 ,工作簿工作表名称是否对
Dim I As Long
For I = 1 To [B65536].End(3).Row
Range("B" & I).Value = "'" & Range("B" & I).Value
Next
例如我已经有三十行数据了,我怎样操作才能获得这个30的数值并应用于其他模块中?以后我可能有三十一、三十二行数据,怎样能灵活地统计出来?谢谢!
1、同时按下“win+R”键,在打开的运行对话框中输入“excel”回车,打开一个新建的excel文档。
2、在打开的excle窗口,依次点击工具栏“开发工具”——“Visual Basic”或直接按快捷键“ALT+F11”,打开VB编辑器。
3、双击左侧工程窗口中的“sheet1”,打开“sheet1”代码编辑窗口。
4、在代码窗口的下拉框中,分别选择“Worksheet”、"SelectionChange",下面会自动生成相应的过程块代码。
5、在过程中写入代码:
If (Target.Columns.Count = Sheet1.Columns.Count) And (Target.Row <= Range("b4").Row) And (Target.Row + Target.Rows.Count > Range("b4").Row) Then
MsgBox "yes"
Else
MsgBox "no"
End If
6、再回到excel窗口,测试一下代码是否能够正确运行,可以看到结果很成功。
参考技术AExcel中用VBA判断行数的方法:
1、VBA中可以用CurrentRegion.Rows.Count属性获得连续的数据区域的行数。
2、'选择A2单元格周围连续有数据的区域,并将其行数值赋予HROW
3、HROW=Sheets("sheet1").[A2].CurrentRegion.Rows.Count
以上是关于在excel中如何用vba来实现查找特定的字符串?的主要内容,如果未能解决你的问题,请参考以下文章