vba - Excel 宏 - 复制和粘贴值并删除原始列
问题描述
我会尽我所能,不要听起来令人困惑 - 所以这里是:
我正在创建一个电子表格,一旦用户提供了值,它将散列 SSN 和 DOB。一旦提供了完整的 SSN 和 DOB,我有公式可以将最后 4 个 ssn、前 4 个 dob、散列的 dob 和散列的 SSN 添加到它们自己的列中。但是,我想删除具有提供的完整 SSN 和 DOB 的列,而不会丢失散列的 DOB 和 SSN,包括前 4 个 DOB 和最后 4 个 SSN。
电子表格格式为:
J N X AQ
Hashed DOB First 4 DOB Last 4 SSN Full SSN Hash
和列在列Full date of Birth
和中。Full SSN
Q
R
这是我正在尝试删除原始值Full date of Birth
和Full SSN
值的旧宏。我不知道如何让它在分散而不是彼此相邻的列上工作。
Sub CopyAndDeleteSensData()
Columns("E:H").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("A:D").Select
Selection.Copy
Columns("E:E").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("A:D").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("A:D").EntireColumn.AutoFit
Columns("J:K").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("E2").Select
End Sub
预先感谢您的帮助!
解决方案
更新以修复最后一行:
您的问题可能在于您正在逐个(或一次删除几个)删除列,因此数据在一次删除后发生变化,不再与您指定的列对齐。在所有插入完成后,尝试一次删除所有列,如下所示。
Sub main()
' Delete columns A and C from "Sheet1"
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1")
ws.Range("a:a, c:c").EntireColumn.Delete
End Sub
推荐阅读
- stored-procedures - Azure Cosmos DB 令牌让我点击端点,但未经过身份验证
- python - 无法使用python输入txt文件内容作为查询字符串
- dask - Dask 分布式执行计算而不返回数据
- x86 - 尝试在 x86 GAS 中实现 strlen
- html - 使用 Flexbox 创建布局
- angular - 表单数组字段上的Angular 5表单验证
- sqlite - Xamarin.Forms SQLite,在创建表时初始化数据
- apache-kafka - 如果 KGroupedStream 的聚合器返回 null 会发生什么?
- c - 如何在c中反转双向链表
- haskell - Haskell 中的正确后缀