【发布时间】:2020-08-07 01:40:35
【问题描述】:
我正在尝试将一组数据转换为不同的格式以供导出。
我只想复制带有值的行。
从 D 列开始(见附件),我想过滤非空白值并在新工作表的五列中跨列 B、C、D、CellD2、CellD3 复制。然后对 D 列之后具有值的所有列重复相同的操作。
数据集可以有多列(无固定限制)和多行(无固定限制)。
我写的代码
Sub CopyPaste()
Dim Totalrows As Long
Dim Totalcolumns As Long
Dim rowloop As Long
Dim columnloop As Long
Dim rowcount As Long
Dim columncount As Long
Dim pastestart As Long
Sheets("LJM Fert").Activate
Totalrows = ActiveSheet.UsedRange.Rows.Count
Totalcolumns = ActiveSheet.UsedRange.Columns.Count
rowcount = 4
columncount = 4
pastestart = 2
For rowloop = rowcount To Totalrows
For columnloop = columncount To Totalcolumns
If ActiveSheet.Cells(rowcount, columncount).Value <> "" Then
ActiveSheet.Cells(rowcount, 2).Copy
Sheets("Export").Activate
ActiveSheet.Cells(pastestart, 1).Paste
Sheets("LJM Fert").Activate
ActiveSheet.Cells(rowcount, 3).Copy
Sheets("Export").Activate
ActiveSheet.Cells(pastestart, 2).Paste
Sheets("LJM Fert").Activate
ActiveSheet.Cells(rowcount, columncount).Copy
Sheets("Export").Activate
ActiveSheet.Cells(pastestart, 3).Paste
Sheets("LJM Fert").Activate
ActiveSheet.Cells(2, columncount).Copy
Sheets("Export").Activate
ActiveSheet.Cells(pastestart, 4).Paste
Sheets("LJM Fert").Activate
ActiveSheet.Cells(3, columncount).Copy
Sheets("Export").Activate
ActiveSheet.Cells(pastestart, 5).Paste
Sheets("LJM Fert").Activate
End If
columncount = columncount + 1
pastestart = pastestart + 1
Next
Next
Application.CutCopyMode = False
'ThisWorkbook.Worksheets("Export").Cells(1, 1).Select
End Sub
【问题讨论】: