除了使用常规的复制和粘贴功能外,有没有办法在一个电子表格中查找整列(而不是单个单元格)中的数据并将其放在另一个电子表格中(减去空白单元格),这样它就会被压缩?
答案1
这是不使用宏或 VBA 的另一种方法:
- 选择列
- 转至主页 -> 查找并选择 -> 转至特殊内容
- 选择常量并确定
- 现在,仅选择具有值的单元格。
- 复制并粘贴。完成了!
答案2
这个小宏将复制列A从工作表1到列A的工作表2省略空格。请根据您自己的列和工作表名称调整代码:
Sub CopyNoBanks()
Dim sh1 As Worksheet, s2 As Worksheet, i As Long
Dim j As Long, N As Long, r1 As Range
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
N = sh1.Cells(Rows.Count, "A").End(xlUp).Row
j = 1
For i = 1 To N
Set r1 = sh1.Cells(i, "A")
If r1.Value <> "" Then
r1.Copy sh2.Cells(j, "A")
j = j + 1
End If
Next i
End Sub
宏的安装和使用非常容易:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除宏:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要使用 Excel 中的宏:
- ALT-F8
- 选择宏
- 触摸运行
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其工作!