Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column >5 Then
Cells(Target.Row + 1, 1).Select
End If
End Sub
上面是>5,即数据输到E列,再往右就会换行。
Sub 从行拷贝到列()'假定源数据区在sheet1,拷贝到sheet2中的目标数据区
colnum = 9 '源数据区的总列数,可根据实际情况调整
rownum = 2 '源数据区的总行数,可根据实际情况调整
col = 3 '拷贝几列以后换行,可根据实际情况调整
sheet1RowOff = 4 '源数据区首行行号,可根据实际情况调整
sheet1ColOff = 5 '源数据区首列列号,可根据实际情况调整
sheet2RowOff = 2 '目标数据区首行行号,可根据实际情况调整
sheet2ColOff = 3 '目标数据区首列列号,可根据实际情况调整
sheet1Rowp = sheet1RowOff '源数据区行指针,不必修改
sheet2Rowp = sheet2RowOff '目标数据区行指针,不必修改
sheet1Colp = sheet1ColOff '源数据区列指针,不必修改
sheet2Colp = sheet2ColOff '目标数据区列指针,不必修改
For j = sheet1RowOff To rownum + sheet1RowOff - 1
For i = sheet1ColOff To colnum + sheet1ColOff - 1
Sheet2.Cells(sheet2Rowp, sheet2Colp) = Sheet1.Cells(sheet1Rowp, i)
sheet2Colp = sheet2Colp + 1
If sheet2Colp >= col + sheet2ColOff Then
sheet2Rowp = sheet2Rowp + 1
sheet2Colp = sheet2ColOff
End If
Next
sheet1Rowp = sheet1Rowp + 1
Next
End Sub
拷贝上面的程序到你的excel宏中运行,将会把sheet1中E4:M5区域中的数据以行优先的方式逐行拷贝到sheet2中的C2:E7区域中,拷贝三个数后自动换行。如果源区域或目标区域不同,只需按注释修改相应变量的值。
如果想控制第几列换行,只需修改第5行的变量col的值。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)