粘贴数据后取消选择列

时间:2017-09-04 07:03:13

标签: excel-vba vba excel

这可能很简单,但我无法解决它。

我可以使用Application.CutCopyMode=False从我复制数据的位置释放列,但是粘贴数据的列仍然保持选中状态,我按照其中一个论坛的建议尝试了ActiveSheet.EnableSelection = xlNone我的代码的成功完成工作正常:

Dim wb As Workbook
Dim t1 As Worksheet
Dim r As Worksheet

Set wb = ActiveWorkbook
Set t1 = Sheets("dataT1")
Set r = Sheets("HPV1report")

t1.Range("D3:CR5").Copy
r.Range("A2").PasteSpecial _
    Paste:=xlPasteValues, _
    Operation:=xlNone, _
    SkipBlanks:=False, _
    Transpose:=True
    Selection.EntireColumn.AutoFit
End sub

我能想到的另一件事就是选择Cell A1,这样该列就会免费,但如果可以,我会更喜欢使用select。

3 个答案:

答案 0 :(得分:4)

您无法真正取消选择单元格,因为工作表的性质始终是所选单元格。

可能没有选定单元格的唯一原因是

  • 选择控件/按钮等对象
  • 或保护工作表免受@moosli指出的用户交互。

所以正确的方法是,正如你已经发现的那样:
选择任何其他单元格,例如。 A1。

{node|short}

答案 1 :(得分:0)

您可以通过这种方式实现

Application.ScreenUpdating = False
Worksheets("name sheet selected data").Activate
Worksheets("name sheet selected data").Range("A1").Select
Worksheets("name sheet you want goto").Activate
Application.ScreenUpdating = True

答案 2 :(得分:0)

正如PEH所指出的,在Excel中总是选择了某些内容,因此他建议选择一个像A1这样的硬编码单元格。我更喜欢在复制/粘贴过程之前存储活动的单元格,并在粘贴后重新选择该单元格。

Dim ActCell As Excel.Range
Set ActCell = Excel.Application.ActiveCell
'Do the copy and paste process

Excel.Application.CutCopyMode = Excel.XlCutCopyMode.xlCut
ActCell.Select