Vba 如何从Find Last Column函数中排除特定行
我已经创建了一个创建库存列表的电子表格。我正在编写的宏打开我的内部网搜索页面,在a行中输入目录号(图中未显示)。并将信息返回到excel工作表。当它输入位置(装备)时,它在第2行中创建一个标题。我创建了第二个宏,用于删除非活动位置。在这个过滤器之后,我留下了一个更干净的列表,但我想删除第2行中不再包含信息的标题(即AH、AI、AJ等列)。我知道我可以找到工作表中最后使用的列,但我想做的是在第3到最后一行为空时清除第2行中的格式、边框和内容 有没有办法调整此选项以将行2从搜索中排除Vba 如何从Find Last Column函数中排除特定行,vba,excel,Vba,Excel,我已经创建了一个创建库存列表的电子表格。我正在编写的宏打开我的内部网搜索页面,在a行中输入目录号(图中未显示)。并将信息返回到excel工作表。当它输入位置(装备)时,它在第2行中创建一个标题。我创建了第二个宏,用于删除非活动位置。在这个过滤器之后,我留下了一个更干净的列表,但我想删除第2行中不再包含信息的标题(即AH、AI、AJ等列)。我知道我可以找到工作表中最后使用的列,但我想做的是在第3到最后一行为空时清除第2行中的格式、边框和内容 有没有办法调整此选项以将行2从搜索中排除 Dim Las
Dim LastColumn As Integer
Set LastColumn = Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
Cells(2,LastColumn).Select
ActiveCell.Offset(0,1)
Do
If not ActiveCell = "" Then
ActiveCell.EntireColumn.Delete(xlToLeft)
DoEvents
Else
Exit Do
End If
Loop
合并Gary学生回答后的最终代码。谢谢强>
'Find last used column below header row
Dim wf As WorksheetFunction
Dim N As Long
Dim rCol As Range
Set wf = Application.WorksheetFunction
Cells(1, 1).EntireRow.Hidden = True
Cells(2, 1).EntireRow.Hidden = True
Do
For N = Columns.Count To 1 Step -1
Set rCol = Cells(1, N).EntireColumn
If wf.Subtotal(103, rCol) > 0 Then
Exit Do
End If
Next
Loop
Cells(1, 1).EntireRow.Hidden = False
Cells(2, 1).EntireRow.Hidden = False
'Trim header row to used columns only
Cells(2, N).Select
ActiveCell.Offset(0, 1).Select
Do
If Not ActiveCell = "" Then
ActiveCell.EntireColumn.Delete (xlToLeft)
DoEvents
Else
Exit Do
End If
Loop
从我所能理解的基本情况来看,你试图进行搜索,并从搜索中排除一些行?为什么不使用双环呢
for i 1 to columns you want
for j = 1 to rows you want
if j <> row you don't want
'add code here
end if
nextj
next i
用于i 1到您想要的列
对于j=1,请选择所需的行
如果你不想要的话
'在此处添加代码
如果结束
下一个
接下来我
只需从检查中排除该行:
Sub FindLastColumn()
Dim BadRow As Long, wf As WorksheetFunction
Dim N As Long, rCol As Range, i As Long
BadRow = 7
i = 103
Set wf = Application.WorksheetFunction
Cells(BadRow, 1).EntireRow.Hidden = True
For N = Columns.Count To 1 Step -1
Set rCol = Cells(1, N).EntireColumn
If wf.Subtotal(i, rCol) > 0 Then
MsgBox "The last used column is: " & N
Cells(BadRow, 1).EntireRow.Hidden = False
Exit Sub
End If
Next N
Cells(BadRow, 1).EntireRow.Hidden = False
End Sub
因为列长度将更改。我试图使用find函数来查找“columns you want”编号。很好,我没有注意到“.entirerow.hidden=true”。这将使它在工作表上不可见,这是否意味着find函数将无法看到它?