zoukankan      html  css  js  c++  java
  • Excel VBA初接触-筛选清除与复制粘贴

        今天第一次尝试使用Excel宏。

        要实现的功能是:1个xls文件中,有2个工作表。判断工作表是否筛选,如果筛选清除筛选。然后将一个工作表中的数据,粘贴到另一个工作表下方。

        尝试了录制宏,然后个修改其中的代码。整个过程中,遇到了一些问题,在网上找,并试验,解决了部分问题。

          1)判断工作表是否处于筛选模式

      If Worksheets("Sheet1").FilterMode = True Then
      2)向下移动一个单元格

      Selection.End(xlDown).Offset(1, 0).Select

      没有找到明确的方法,受到一个答案的启发,尝试着加入offset,没想到成功了。

      3)关闭表格并自动选择是否保存

      ActiveWindow.Close savechanges:=False
      这是关闭表格,并且不保存内容。

      4)清理剪切板

      Application.CutCopyMode = xlCut

      这个是在网上找到的有效的方法。

      

      我想实现的是,关闭文件,但是保留剪贴板中的内容。可惜的是,想实现的功能,目前实现不了。

    Sub MR()
    '
    ' MR 宏
    ' 取MR环境中的数据
    '
    ' 快捷键: Ctrl+m
    '
        If Worksheets("Sheet1").FilterMode = True Then
                Sheets("Sheet1").Select
                ActiveSheet.ShowAllData
        End If
    
        
        If Worksheets("Sheet2").FilterMode = True Then
                Sheets("Sheet2").Select
                ActiveSheet.ShowAllData
        End If
    
        Sheets("Sheet2").Select
        Rows("2:2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Sheets("Sheet1").Select
        Range("A2").Select
        Selection.End(xlDown).Offset(1, 0).Select
        ActiveSheet.Paste
        Rows("2:2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Application.CutCopyMode = xlCut
        ActiveWindow.Close savechanges:=False
        
        'Application.CutCopyMode = True
        'Application.DisplayAlerts = False
        
    End Sub
  • 相关阅读:
    B1005 继续(3n+1)猜想 (25分)
    B1091 N-自守数 (15分)
    B1086 就不告诉你 (15分)
    B1081 检查密码 (15分)
    个人博客作业Week1
    2015个人项目(修改除法要求)
    2014个人博客列表
    最佳个人博客、团队博客评分
    最终评审时间确定
    最终复审要求
  • 原文地址:https://www.cnblogs.com/itit/p/3729009.html
Copyright © 2011-2022 走看看