Excel 粘贴数据后取消选择列

Excel 粘贴数据后取消选择列,excel,vba,Excel,Vba,这可能很简单,但我无法解决它 我可以使用应用程序从复制数据的列中释放出来。CutCopyMode=False但是粘贴数据的列仍然处于选中状态,我尝试了ActiveSheet.EnableSelection=xlNone,正如论坛中建议的那样,但没有成功。我的其余代码工作正常: Dim wb As Workbook Dim t1 As Worksheet Dim r As Worksheet Set wb = ActiveWorkbook Set t1 = Sheets("dataT1") Se

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

我可以使用
应用程序从复制数据的列中释放出来。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

我能想到的另一件事是选择单元格A1,这样列就可以自由显示,但如果可以的话,我更愿意使用select。

您不能真正取消选择单元格,因为工作表的本质是始终有一个选定的单元格

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

  • 选择控件/按钮等对象
  • 或者像@moosli指出的那样保护工作表不受用户交互的影响
因此,正如您已经发现的那样,正确的方法是:
选择任何其他单元格,例如A1

Worksheets("MySheet").Range("A1").Select

你可以通过这种方式实现它

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

正如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

谢谢你,我在底部保留了这个选项来选择“A1”以便从数据列中删除secetion,除了“select”之外还有其他方法可以不使用“select”从列中删除吗?@vj12除了当前选择的单元格之外,没有选择其他单元格实际上是取消选择当前单元格的正式方法。嗨,Jos,欢迎。请考虑添加解释。