我面临一个问题,例如通过row7进行循环并返回Row(我知道,它的7)+ Column并复制整列。
假设我需要在第7行找到“DG”,我曾经这样搜索过:
Dim Found As Range, LastRow As Long
Set Found = Rows(7).Find(What:=value1, LookIn:=xlValues, LookAt:=xlWhole)
If Not Found Is Nothing Then
firstAddress = Found.Address
MsgBox "found" & firstAddress
Do
LastRow = Cells(Rows.Count, Found.Column).End(xlUp).Row
然后用SwitchCase硬编码:|将列返回到复制...
我无法发布整个代码因为它的开关从A到Z.代码可以工作,但不清楚:(我需要它动态。
目标: 指定该行,然后仅在每行上搜索一行值。如果找到,将整个列复制到另一个工作表,然后再次循环(类似.nextRight或其他东西,我知道它的参数)从找到值的列(如第7行,第5列或第E行)到右边的值我正在寻找直到该行上找不到的价值了。复制的列应该一个接一个地放置。
我曾经这样编码:
Set Found = .FindNext(Found)
Loop While Not Found Is Nothing And Found.Address <> firstAddress
//用于循环
Set destination = Sheets("Sheet1")
emptyColumn = destination.Cells(7, destination.Columns.Count).End(xlToLeft).Column + 1
MsgBox "empty coloana" & emptyColumn
If emptyColumn > 1 Then
emptyColumn = emptyColumn
End If
//找到整列发现的路径放在另一张表上。这段代码运作良好......它始终以B列开头,然后是C,D等等......但为什么aint从A列开始?
答案 0 :(得分:0)
我不确定为什么它从一开始就开始,但是如果你正在查看工作表中的每个单元格,为什么只要遍历每个单元格就遍历每一行?这非常快,应该按照你想要的方式运行。
Sub main()
For Each cell In ActiveSheet.UsedRange.Cells
If cell <> "" Then
MsgBox (cell.Row & ":" & cell.Column)
End If
Next
End Sub
我提供了MsgBox来显示可以从ActiveSheet.UsedRange.Cells
对象中提取的行/列详细信息。