【问题标题】:How to copy fixed part of rows based on cell selection , Excel vba?如何根据单元格选择复制行的固定部分,Excel vba?
【发布时间】:2021-06-06 07:40:05
【问题描述】:

我有很多列的表格,如果我选择单元格 B3 或 C3(例如)复制同一行上的单元格 B3:G3,我需要。

选择可以是工作表上的任何行。可以用 vba 完成吗? 样品表附在此链接上 https://easyupload.io/8knzr9

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    选择行范围

    • 选择包含列中列中的单元格B和/或C,它将选择它们的行,但在列中B:G
    • 它将不包括包含合并单元格的前两行。
    • 它将允许多个不连续的选择。​​

    表格模块,例如Sheet1

    Option Explicit
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        
        Const cFirstRow As String = "B3:C3"
        Const sCols As String = "B:G"
        
        Dim crg As Range
        With Range(cFirstRow)
            Set crg = .Resize(Rows.Count - .Row + 1)
        End With
        
        Dim irg As Range: Set irg = Intersect(crg, Target)
        
        If Not irg Is Nothing Then
        
            Dim srg As Range, arg As Range, rrg As Range
            For Each arg In irg.Areas
                For Each rrg In arg.Rows
                    If srg Is Nothing Then
                        Set srg = Columns(sCols).Rows(rrg.Row)
                    Else
                        Set srg = Union(srg, Columns(sCols).Rows(rrg.Row))
                    End If
                Next rrg
            Next arg
            
            If Not srg Is Nothing Then
                srg.Select
            End If
        
        End If
            
    End Sub
    

    【讨论】:

    • 完美运行。如果我需要复制,只需修改 srg.select。进入 seg.copy。非常感谢?“VBasic2008”的持续帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2012-07-16
    • 1970-01-01
    相关资源
    最近更新 更多