excel - 在循环中复制范围内的非空白行
问题描述
我的桌子是这样的;
一个标题 | 另一个标题 |
---|---|
第一的 | 排 |
第二 | 排 |
第一的 | 排 |
第二 | 排 |
[这里,空白行有“”。]
我想要一个这样的表(值);
一个标题 | 另一个标题 |
---|---|
第一的 | 排 |
第二 | 排 |
第一的 | 排 |
第二 | 排 |
我编写了代码来复制并粘贴为新单元格的值。
Dim i As Long
Dim Rng As Range
'for the first table
ActiveSheet.Range("A3").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
ThisWorkbook.Sheets("Sheet1").Range("S3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Set Rng = ActiveSheet.Range("S3")
'Remove "" values that comes from formula
For i = 1 To 600
If Rng.Cells(i, 1) = "" Then
Rng.Cells(i, 1).ClearContents
End If
Next i
'For the second formula
ActiveSheet.Range("A18").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
ThisWorkbook.Sheets("Sheet1").Range("S3").Select
ThisWorkbook.Sheets("Sheet1").Range("S3").End(xlDown).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Set Rng = ActiveSheet.Range("S3")
For i = 1 To 600
If Rng.Cells(i, 1) = "" Then
Rng.Cells(i, 1).ClearContents
End If
Next i
'It continues till 39 table....
我必须为每个数据组粘贴代码。我有一张很长的桌子,所以我想把它做成一个循环。
解决方案
我自己弄清楚我不知道在清除“”单元格时循环多个表以复制和粘贴是否是一个常见问题,但这是我的代码,也许将来有人会需要它;
Sub test()
Dim j As Long
Dim i As Long
Dim Rng As Range
Set Rng = ActiveSheet.Range("S3")
ActiveSheet.Cells(3, 1).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
ThisWorkbook.Sheets("test").Range("S3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
For i = 1 To 600
If Rng.Cells(i, 1) = "" Then
Rng.Cells(i, 1).ClearContents
End If
Next i
For j = 0 To 525 Step 15
ActiveSheet.Cells(18 + j, 1).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
Application.CutCopyMode = False
Selection.Copy
ThisWorkbook.Sheets("test").Range("S3").Select
ThisWorkbook.Sheets("test").Range("S3").End(xlDown).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Set Rng = ActiveSheet.Range("S3")
For i = 1 To 600
If Rng.Cells(i, 1) = "" Then
Rng.Cells(i, 1).ClearContents
End If
Next i
Next j
End Sub
推荐阅读
- c - 从C中的txt文件中提取逗号分隔的字符串
- python - 时间优化:性能、访问列表列表中的值、numpy 数组列表
- python - 如何使用 BeautifulSoup 提取文本和列表
- portfolio - PortfolioAnalytics R - 我使用 DEOptim 找到了最佳投资组合,但是在绘制时看起来投资组合不是最优的,为什么?
- if-statement - 从 AST 为条件表达式生成分支指令
- shell - 根据列号将值附加到输入文件中的行
- perf - Perf 不显示应用程序本身的构建 ID
- python - 使用 thrift rpc 调用时出现 Socket.timeout 错误?
- javascript - 使用 React js 的 Youtube Data Api V3 显示先前获取的结果
- reactjs - Redux 存储元素似乎为 null 或未定义