excel 隔列复制
发布网友
发布时间:2022-04-29 19:21
我来回答
共4个回答
热心网友
时间:2022-06-20 17:58
我是不是这样理解,所有的数据都在第一行,3个有用数据,间隔4个无用数据,如果不是这样请详细说明数据如何排列。
下面的代码复制到模块里面运行就可以了
Sub 提取有效数据()
n = Cells(1, 256).End(1).Column
Sheets.Add before:=Sheets(1)
Sheets(2).Select
For i = 1 To n Step 7
Sheets(2).Range(Cells(1, i), Cells(1, i + 2)).Copy Sheets(1).Range("A" & i)
Next
Sheets(1).Range("A:A").SpecialCells(4).EntireRow.Delete
End Sub
热心网友
时间:2022-06-20 17:58
方法一:
=INDEX(Sheet1!$1:$1,,7*ROW(A1)+COLUMN(A1)-7)
方法二:(VBA编程法,把结果放在sheet2工作表)
Sub 复制()
Dim j&, i&
For j = 1 To Range("IV1").End(xlToLeft).Column Step 7
i = i + 1
Sheet2.Range(Sheet2.Cells(i, 1), Sheet2.Cells(i, 3)) = _
Sheet1.Range(Sheet1.Cells(1, j), Sheet1.Cells(1, j + 2)).Value
Next j
End Sub
方法三:
=INDEX(Sheet1!$1:$1,IF(COLUMN()<8,(ROW()-1)*7+COLUMN(),256))&""
方法四::(VBA编程法,把结果放在sheet2工作表)
Sub 一行变多行()
Dim i As Long
Dim j As Integer
Dim ovr As Long
j = InputBox("转换后每行数据多少列?")
ovr = [IV1].End(xlToLeft).Column
For i = j + 1 To ovr Step j
If i + j - 1 > ovr Then
Range(Cells(1, i), Cells(1, ovr)).Cut Range("A65536").End(xlUp).Offset(1, 0)
Else
Range(Cells(1, i), Cells(1, i + j - 1)).Cut Range("A65536").End(xlUp).Offset(1, 0)
End If
Next
End Sub
热心网友
时间:2022-06-20 17:59
如果这些数据在同一行,就可以按下ctrl的同时,单击选中你要复制的那些数据,然后右键复制,再到空白处粘贴就可以啦。
热心网友
时间:2022-06-20 18:00
你选择a列,b列,c列。。。复制就行啊,如果不是在一个文件中,要快速复制,只能编个宏命令了。