您的位置:首页 > 编程语言 > VB

Excel VBA初接触-筛选清除与复制粘贴

2014-05-15 00:05 411 查看
今天第一次尝试使用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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: