【问题标题】:Excel: How to move data across from one column to another columnExcel:如何将数据从一列移动到另一列
【发布时间】:2020-05-02 21:00:00
【问题描述】:

我有一个问题。我需要在 MS-Excel 的替代行中将数据从一列移动到另一列。

为方便起见,请查看屏幕截图。它显示了我需要的确切输出。

如果可能,请通过公式而不是VBA代码提供解决方案。

非常感谢您的支持。

问候 詹姆斯

How to move cell across in Excel

【问题讨论】:

    标签: excel vba excel-formula


    【解决方案1】:

    行相关公式

    对于屏幕截图中的设置,请使用以下公式:

    [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
    

    【讨论】:

    • VBasic2008,你太棒了。你让我今天一整天都感觉很好。这很有帮助。非常感谢您的帮助。
    • 漂亮的编码风格(+1)
    • VBasic2008,你真是太棒了!我很欣赏你的主动性。这是更好的解决方案。我已经测试过,它就像魅力一样!但是,当我针对大数据运行时,它给了我错误。 “运行时错误'9':下标超出范围”。我的编程技巧很差。我想我需要做一些小的改变。不确定您有什么建议?我正在测试“B”列下有 500 行。再次感谢您的帮助。 (我认为可以在评论中添加屏幕截图,即在这里)
    • @James:当有odd 的数据数量时,应该会发生错误。该代码是为数据对(even 数字(Step 2))编写的,因此只需或多或少选择一个单元格(行),例如使用C2:C501 而不是C2:C500
    • 再次非常感谢您。它就像魅力一样。没有复制错误数据。但它没有动。你有什么建议吗?我使用的代码“ Const wsName As String = "Sheet3" Const srcRange As String = "B2:B111" Const tgtRange As String = "A2:A111"
    猜你喜欢
    • 2021-11-27
    • 2021-10-16
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-18
    相关资源
    最近更新 更多