目标区域中有隐藏行、列Excel 黏贴数据时如何跳过隐藏区域

2022-10-07 深圳推广 技术文档

应用场景

将excel黏贴时仅仅黏贴在显示的单元格中(当目标区域中有隐藏行、列、或者目标区域处于筛选状态,excel黏贴数据时不会跳过隐藏区域)

知识要点

1:SpecialCells(xlCellTypeVisible)  定位可见区域,

2:如果被复制区域有隐藏区域,那么创建一个辅助工作表,将被复制区域的可见区域黏贴到辅助工作表

3:黏贴后的区域不在存在隐藏区域,然后将选区的单元格逐个复制到目标区域,在复制时检查它的状态是否为显示

Sub 黏贴数据时跳过隐藏区()

        Dim Rng As Range, Rngg As Range, Cell As Range, i As Long, Rang As Range, Sht As Worksheet, j As Integer, Col_count As Integer

        On Error Resume Next

        If TypeName(Selection) = "Range" Then  '仅仅对选择对象是单元格者进行操作

            Set Sht = ActiveSheet   '将当前工作表赋值给变量sht

            '确定黏贴的目标区域

            Set Cell = Application.InputBox("请选择目标区域存放区域,一个单元格即可", "目标区域", , , , , , 8)

            If Err <> 0 Then Exit Sub '如果有错误则退出

            Application.ScreenUpdating = False  '关闭屏幕刷新

            With Selection.SpecialCells(xlCellTypeVisible) '定位选区的可见区域

                If .Address <> Selection.Address Then

                '如果可见区域地址与选区的地址不一致

                    Selection.SpecialCells(xlCellTypeVisible).Copy  '复制选区的可见区域

                    Sheets.Add after:=Sheets(Sheets.Count) '添加一个新表

                    ActiveSheet.Paste '黏贴数据

                    Set Rngg = Selection '将新表中的选区赋予变量

                Else

                    Set Rngg = Selection

                End If

            End With

            Sht.Select '返回原工作表

            '确定目标区域列数

            For i = 1 To 5000 '循环

                '如果目标存放区域的第一个单元格向右偏移 i-1 的单元格的列宽大于(也就是说显示状态)

                If Cell.Offset(0, i - 1).ColumnWidth > 0 Then

                    Col_count = Col_count + 1 '那么累加计数器,该计数器代表显示区域的列数

                    '如果计数器等于rngg区域的列数时,终止循环

                    If Col_count = Rngg.Columns.Count Then GoTo begin

                End If

            Next i

            '开始复制选区中可见单元格到目标区域中的可见单元格中

begin:

            Set Cell = Cell.Resize(Rngg.Rows.Count, i)

            '根据rngg的列数和变量i重新指定cell代表的区域

            For Each Rng In Rngg '遍历rngg区域(外层循环)

                For i = 1 To 5000

                    '如果cell区域的j +1 个单元格为显示状态,那么终止里层循环

                    If Cell(j + i).RowHeight > 0 And Cell(j + i).ColumnWidth > 0 Then GoTo Star

                Next

Star:

                    j = j + 1 '累加变量

                    Rng.Copy Cell(j) '逐个复制单元格

            Next Rng

            If Selection.SpecialCells(xlCellTypeVisible).Address <> Selection.Address Then

                Application.DisplayAlerts = False

                Sheets(Sheets.Count).Delete

                Application.DisplayAlerts = True

            End If

            Application.ScreenUpdating = True

        End If

End Sub

  • 微信怎么隐藏好友,不让人发现
    hover

    微信怎么隐藏好友,不让人发现

    在微信中隐藏好友的步骤:打开微信设置并选择“隐私”。选择“通讯录隐私”,将“谁可以看我的通讯录”设为“仅自己”。若只想隐藏特定联系人,可将其添加到“通讯录黑名单”。 如何在不让人发现的情况下隐藏微信好友 在微信中隐藏好友可以保···

    2024-04-05
  • 微信怎么隐藏好友
    hover

    微信怎么隐藏好友

    有三种微信隐藏好友的方法:使用黑名单功能、创建分组隐藏好友,以及使用第三方修改软件。黑名单功能可使双方无法发送消息或查看朋友圈,分组隐藏好友时好友不会完全隐藏,而第三方软件隐藏好友存在安全风险,使用时需谨慎。 微信隐···

    2024-04-05
  • 微信怎么隐藏聊天记录
    hover

    微信怎么隐藏聊天记录

    微信提供了隐藏聊天记录的功能,用户可通过以下步骤进行操作:打开微信聊天列表,长按要隐藏的聊天。选择“隐藏”,确认隐藏后聊天记录将消失。要解除隐藏,可以在搜索栏输入聊天名称并点击“取消隐藏”按钮即可恢复聊天内容。 微信隐藏···

    2024-04-05
  • 微信怎么隐藏好友还能正常聊天
    hover

    微信怎么隐藏好友还能正常聊天

    是的,微信隐藏好友后仍可正常聊天。具体方式包括:通过聊天搜索查找聊天记录,在共同群聊中交流。 微信隐藏好友还能正常聊天吗? 回答:是的,微信隐藏好友后,仍可以正常聊天。 详细说明: 隐藏好友仅会将好友从联系人列表中隐藏···

    2024-04-05
  • 高通或让第四代骁龙8跳过LPDDR5T 直接支持LPDDR6
    hover

    高通或让第四代骁龙8跳过LPDDR5T 直接支持LPDDR6

    此前有报道称,JEDEC固态存储协会预计在2024年第三季度最终确定下一代LPDDR6标准的规格。未来LPDDR6将取代现有的LPDDR5、LPDDR5x和LPDDR5T,为低功耗设备带来更高、更快和更高效的性能。 虽然第三代骁龙8和天玑9300一样,通···

    2024-03-15
  • win11如何跳过联网激活
    hover

    win11如何跳过联网激活

    跳过方法:方法一:1、在联网界面,按下组合键shift + f10;2、在命令行窗口输入taskmgr并回车,打开任务管理器;3、找到“network connection flow”进程,右键点击后选择“结束任务”;4、继续引导进程,并创建本地账户即可。方法二:1···

    2024-03-06
  • erp系统中有哪些模块
    hover

    erp系统中有哪些模块

    常见的ERP系统模块:1、采购管理模块;2、销售管理模块;3、库存管理模块;4、生产管理模块;5、人力资源管理模块;6、财务管理模块;7、项目管理模块;8、客户关系管理模块;9、质量管理模块;10、供应链管理模块;11、物流管理模块···

    2024-01-08
  • 隐藏盘符的方法有哪些
    hover

    隐藏盘符的方法有哪些

    隐藏盘符的方法:1、使用第三方软件隐藏盘符:有一些第三方软件可以帮助用户隐藏盘符,例如Wise Folder Hider、Free Hide Folder等;2、使用Windows系统自带的BitLocker功能:BitLocker可以对整个磁盘或者指定的分区进行加密,从而隐···

    2023-12-13
在线客服 13691917840 提交需求 二维码