
求大神耐心解答VBA问题 在线等
3个回答
展开全部
Sub a()
Dim a, b, i()
For a = 1 To Worksheets.Count
ReDim Preserve i(a - 1)
For b = 1 To Sheets(a).Range("IV5").End(xlToLeft).Column
If Sheets(a).Cells(5, b) = "ABC" Then i(a - 1) = b: Exit For
Next
Next
End Sub
从第一张表开始找,有几张表,数组i就有几个元素
每行的范围是从第1列到第256列(IV列)往左的第一个非空单元格
找到第1个“ABC”,就放进数组i,然后退出,进行下一张表
追问
这个思路好,太谢谢了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i是循环变量,x是返回的列序号
For i = 1 To Cells(5, 1).End(xlToRight).Column
If Cells(5, i) = "ABC" Then
x = Cells(5, i).Column
End If
Next i
For i = 1 To Cells(5, 1).End(xlToRight).Column
If Cells(5, i) = "ABC" Then
x = Cells(5, i).Column
End If
Next i
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
列序号是用字母表示法?还是数字表示法?
更多追问追答
追问
不用管列序号了,k = Sheets(1).UsedRange.Rows.Count + 1
就比如说这句是定义K为多少行,想要一个 满足标题条件来定义的i的表达式
追答
Dim Sht as WorkSheet,Rng as Range,i as long
for each Sht in ThisWorkbook
for each Rng in Sht.Rows(5)
if Rng.Value="ABC" then i=Rng.Column
next
next
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询