【发布时间】:2020-05-02 21:00:00
【问题描述】:
我有一个问题。我需要在 MS-Excel 的替代行中将数据从一列移动到另一列。
为方便起见,请查看屏幕截图。它显示了我需要的确切输出。
如果可能,请通过公式而不是VBA代码提供解决方案。
非常感谢您的支持。
问候 詹姆斯
【问题讨论】:
标签: excel vba excel-formula
我有一个问题。我需要在 MS-Excel 的替代行中将数据从一列移动到另一列。
为方便起见,请查看屏幕截图。它显示了我需要的确切输出。
如果可能,请通过公式而不是VBA代码提供解决方案。
非常感谢您的支持。
问候 詹姆斯
【问题讨论】:
标签: excel vba excel-formula
对于屏幕截图中的设置,请使用以下公式:
[G2] =IF(MOD(ROW(),2)=0,C3,"")
[H2] =IF(MOD(ROW(),2)=0,C2,"")
如果您真的想重新排列(移动)数据,这里有一个 VBA 解决方案:
Option Explicit
Sub MoveData()
Const wsName As String = "Sheet1" ' Worksheet Name
Const srcRange As String = "C2:C11" ' Source Range Address
Const tgtRange As String = "B2:C11" ' Target Range Address
Dim ws As Worksheet ' Worksheet
Dim Source As Variant ' Source Array
Dim Target As Variant ' Target Array
Dim i As Long ' Source/Target Array Element (Row) Counter
' Define worksheet.
Set ws = ThisWorkbook.Worksheets(wsName)
' Copy Source Range to Source Array.
Source = ws.Range(srcRange)
' Copy values from Source Array to Target Array.
ReDim Target(1 To UBound(Source), 1 To 2)
For i = 1 To UBound(Target) Step 2
Target(i, 1) = Source(i + 1, 1)
Target(i, 2) = Source(i, 1)
Next i
'-Copy values from Target Array to Target Range.
ws.Range(tgtRange) = Target
End Sub
【讨论】:
odd 的数据数量时,应该会发生错误。该代码是为数据对(even 数字(Step 2))编写的,因此只需或多或少选择一个单元格(行),例如使用C2:C501 而不是C2:C500。