从行中查找匹配值Excel单元格
这是一个Excel问题。 我有一个包含以下值的Excel行: cell value 1, 2, x, ,1=,2=, ,x=,2 cell address a1,b1,c1,d1,e1,f1,g1,h1,i1 单元格值1,2,x,,1=,2=,x=,2 小区地址a1、b1、c1、d1、e1、f1、g1、h1、i1 我想从上面的行中获取所有非空单元格地址 i.e. a1,b1,c1,e1,f1,h1,i1 即 a1、b1、c1、e1、f1、h1、i1 是否可以使用vba/vbs来完成这项工作从行中查找匹配值Excel单元格,excel,vbscript,vba,Excel,Vbscript,Vba,这是一个Excel问题。 我有一个包含以下值的Excel行: cell value 1, 2, x, ,1=,2=, ,x=,2 cell address a1,b1,c1,d1,e1,f1,g1,h1,i1 单元格值1,2,x,,1=,2=,x=,2 小区地址a1、b1、c1、d1、e1、f1、g1、h1、i1 我想从上面的行中获取所有非空单元格地址 i.e. a1,b1,c1,e1,f1,h1,i1 即 a1、b1、c1、e1、f1、h1、i1 是否可以使用vba/vbs来
非常感谢您可以使用
.SpecialCells(xlCellTypeConstants)
要演示,请运行此操作,并在iMedia窗口中观察结果
Sub demo()
Dim rng As Range, rNonEmpty As Range
Set rng = [A1:I1]
Set rNonEmpty = rng.SpecialCells(xlCellTypeConstants)
Debug.Print rNonEmpty.Address
End Sub
以下代码将检查10行乘1000列的区域,最后将显示单元格A20中非空白单元格的地址:
Sub no_blank_cells()
Dim wks As Worksheet
Set wks = ActiveSheet
m = ""
maxrows = 10
maxcolumns = 1000
For i = 1 To maxrows
For j = 1 To maxcolumns
a = Cells(i, j)
If a <> "" Then
m = m & Cells(i, j).Address(RowAbsolute:=False, ColumnAbsolute:=False) & ", "
End If
Next j
Next i
msg = MsgBox(m, vbInformation)
wks.Cells(20, 1) = m
End Sub
子编号空白单元格()
将工作作为工作表
设置wks=ActiveSheet
m=“”
maxrows=10
maxcolumns=1000
对于i=1到maxrows
对于j=1到maxcolumns
a=单元(i,j)
如果是“”,那么
m=m&单元格(i,j).地址(行绝对值=False,列绝对值=False)&“
如果结束
下一个j
接下来我
msg=MsgBox(m,vbInformation)
wks.细胞(20,1)=m
端接头
如果要更改要搜索的区域,请修改变量的值
Sub WriteNonNulValue()
'/*SELECT SHEET TO ANALIZE*/
Worksheets("Sheet1").Select
'/*SELECT ROW TO READ*/
Row_to_read = 1
'/*SELECT ROW IN WHICH WRITE*/
Row_to_write = 2
'/*NUMBER OF COLUMNS TO ANALIZE*/
Columns_to_analize = 11
'/*COUNTER WRITE*/
Columns_to_write = 1
For i = 1 To Columns_to_analize
If Trim(Cells(Row_to_read, i)) <> "" Then
'/*WRITE ADDRESS NO EMPTY CELLS*/
Cells(Row_to_write, Columns_to_write) = Cells(Row_to_read,i).Address
'/*INCREMENT COUNTER WRITE*/
Columns_to_write = Columns_to_write + 1
End If
Next i
End Sub
'/*选择要分析的图纸*/
工作表(“表1”)。选择
'/*选择要读取的行*/
行到读取=1
'/*选择要写入的行*/
行到写入=2
“/*要分析的列数*/
列到列分析=11
'/*计数器写入*/
列到写入=1
对于i=1到列\u到\u分析
如果Trim(单元格(第_行至第_行,i))为“”,则
“/*写入地址无空单元格*/
单元格(行写入,列写入)=单元格(行读取,i)。地址
'/*递增计数器写入*/
列写入=列写入+1
如果结束
接下来我
端接头
“我想得到”——这是什么意思?到目前为止你的代码是什么?你被困在哪里?此网站不是代码创建服务。很乐意帮忙,但你需要展示你自己的努力。我建议使用一个循环来检查A1:I1范围,并将结果写入数组。我使用for循环来检查每个单元格,以及搜索速度。太慢了。