【问题标题】:Excel VBA - Combine and duplicate rows/columnsExcel VBA - 合并和复制行/列
【发布时间】:2014-06-18 00:58:46
【问题描述】:

谁能帮助或指导我如何在 Excel 中创建一个宏,该宏将从某些列创建新行,同时复制所有其他周围的值?

比如我需要转这个:

A 1 2 3 4 B
C 5 6 7 8 D

进入这个:

A 1 B
A 2 B
A 3 B
A 4 B
C 5 D
C 6 D
C 7 D
C 8 D

我找到了一种使用以下宏组合列的方法:

Sub SingleColumn()
Dim CurSh As Worksheet, NewSh As Worksheet, Rng As Range, Col As Long

Set CurSh = ActiveSheet
Set NewSh = Sheets.Add
CurSh.Activate
Set Rng = Application.Intersect(Selection, CurSh.UsedRange)

For Col = 1 To Selection.Columns.Count
    Rng.Range(Cells(1, Col), Cells(Rng.Rows.Count, Col)).Copy NewSh.Range("a65536").End(xlUp).Offset(1, 0)
Next Col
End Sub

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    像这样修改代码:

    Sub SingleColumn()
        Dim CurSh As Worksheet, NewSh As Worksheet, Rng As Range, Col As Long, Row As Long
    
        Set CurSh = ActiveSheet
        Set NewSh = Sheets.Add
        CurSh.Activate
        Set Rng = Application.Intersect(Selection, CurSh.UsedRange)
    
        For Row = 1 To Selection.Rows.Count
            For Col = 1 To Selection.Columns.Count
                Rng.Range(Cells(Row, Col).Address).Copy NewSh.Range("A1").Offset(Col - 1, Row - 1)
            Next
        Next
    End Sub
    

    对我来说,宏有点复杂......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-14
      • 1970-01-01
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多