vba - 在列中查找以“SS”开头的单元格并将行向左移动
问题描述
我复制了一份需要整理的pdf。我在 A 列中有规范(SS####),在 BH 中有其他文字。问题是一些规范最终出现在 B 列中,所以我想搜索所有与 SS 一起使用的单元格,然后将整行移过来。我尝试使用自动过滤器并选择可见单元格以及 .find 无济于事。
谢谢您的帮助!
Sub Test()
Dim Sheet As Worksheet
Application.ScreenUpdating = False
Set Sheet = Sheets("Original Index Goes Here")
Dim rng As Range, sel As Range, selrange As String, r As Long
Set rng = Range("B1:B10000")
rng.AutoFilter Field:=1, Criteria1:="=SS*", _
Operator:=xlAnd, visibledropdown:=True
ActiveSheet.AutoFilter.Range.Offset(1,0) _
.Rows.SpecialCells(xlCellTypeVisible).Select
End Sub
这将为下面显示的四个中的每一个选择 B 列中的单元格,但我不知道如何抓取该行的其余部分并将其向右移动。()
解决方案
试试这个,它会在 B 列中搜索类似“SS”的任何内容,如果找到,则删除左侧的单元格,即 A 并将整行向左移动。
Sub findSS()
Dim getLastRow As Long
getLastRow = Range("B" & Rows.Count).End(xlUp).Row
For i = 1 To getLastRow
If Range("B" & i) Like "*SS*" Then
Range("A" & i).Select
Selection.Delete Shift:=xlToLeft
End If
Next
End Sub
更新,将在 D 列中找到“SS”,或者如果您希望它在任何列中找到,只需将“D”更改为您想要的任何列,它将获取 SS 并插入一行并将其放在那里。
Sub findSS()
Dim getLastRow As Long
Dim columnLetter As String
getLastRow = Range("B" & Rows.Count).End(xlUp).Row
columnLetter = "D"
For i = 1 To getLastRow
If Range(columnLetter & i) Like "*SS*" Then
Range(columnLetter & i).Insert shift:=xlDown
End If
Next
End Sub
推荐阅读
- c - 条件跳转或移动取决于带问号的未初始化值
- python - Keras 模型多输入 - 类型错误:('关键字参数不理解:','输入')
- jenkins - 使用具有不同参数的定期构建选项构建 Jenkins 作业
- javascript - 在对象字面量中使用 __proto__
- ios - Swift:打印到任何类型的控制台可变参数
- amazon-web-services - 亚马逊EC2 | CodeDeploy [React] - 部署成功但未填充构建文件夹
- c# - 如何在 Visual Studio Cmdlet DLL 中支持不同的 Powershell 版本
- javascript - DomComplete 事件的事件侦听器未执行
- prolog - 如何在序言中加入规则并打印输出
- vbscript - CreateTextFile 中的 VBScript 权限被拒绝错误 800A0046 突然开始发生