excel - 基本語法下篇 - vba入門




使用VBA編程Excel時,如何將選擇設置為Nothing? (9)

在使用range.copy和range.paste之後創建圖形時,它會保留選定的粘貼範圍,然後在稍後幾行創建圖形時,會將該選擇作為圖形中的第一個系列。 我可以刪除該系列,但有沒有更好的方法來做到這一點? 我試過了

Set selection = nothing

但它不會讓我選擇。 我也嘗試過selection.clear,但是這只是清除了最後選中的單元格,並且還為劇情添加了一個額外的系列。


我不認為這是可以做到的。 下面是從Chip Pearson的網站上複製的一些代碼: http : //www.cpearson.com/excel/UnSelect.aspx

UnSelectActiveCell

此過程將從選擇中刪除活動單元格。

Sub UnSelectActiveCell()
    Dim R As Range
    Dim RR As Range
    For Each R In Selection.Cells
        If StrComp(R.Address, ActiveCell.Address, vbBinaryCompare) <> 0 Then
            If RR Is Nothing Then
                Set RR = R
            Else
                Set RR = Application.Union(RR, R)
            End If
        End If
    Next R
    If Not RR Is Nothing Then
        RR.Select
    End If
End Sub

UnSelectCurrentArea

此過程將從選區中移除包含活動單元的區域。

Sub UnSelectCurrentArea()
    Dim Area As Range
    Dim RR As Range

    For Each Area In Selection.Areas
        If Application.Intersect(Area, ActiveCell) Is Nothing Then
            If RR Is Nothing Then
                Set RR = Area
            Else
                Set RR = Application.Union(RR, Area)
            End If
        End If
    Next Area
    If Not RR Is Nothing Then
        RR.Select
    End If
End Sub

在Excel 2007中,使用select和CutCopyMode屬性的組合,可以重置所有選擇。 它適用於我的用例。

Application.CutCopyMode = xlCopy
ActiveSheet.Range("A" & lngRow).Select

問候Madhur


有一種方法可以選擇任何解決您的問題。

  1. 創建一個形狀(一個矩形)
  2. 將其命名為Shapes Database >>>例如:“Ready”
  3. 參考它的MYDOC.Shapes(“就緒”),並將可見性更改為False

當你想要Excel選擇什麼時候做:

MYDOC.Shapes("Ready").visible=True
MYDOC.Shapes("Ready").Select
MYDOC.Shapes("Ready").visible=False

這隱藏的選擇,並沒有任何東西仍然在您的窗口中選擇加:單詞“就緒”顯示在您的工作表的左上角。


Application.CutCopyMode = False

只是使用

SendKeys“{ESC}”

從而取消您的選擇。


Selection(1, 1).Select選擇將只選擇當前選擇的左上角的單元格。


如果使用一個按鈕來調用粘貼過程,

在操作之後嘗試激活按鈕。 這成功地清除了選擇

  • 不得不亂用隱藏的東西
  • 選擇另一個單元格(這與問題完全相反)
  • 影響剪貼板模式
  • 有沒有總是工作​​的按鍵逃生的hacky方法

HTH

Sub BtnCopypasta_Worksheet_Click()
   range.copy
   range.paste
BtnCopypasta.Activate
End sub

HTH


嘗試了所有的建議,沒有運氣,但這裡有一個想法,我選擇了一個單元格出你的選擇範圍(比如AAA1000000),然後再次選擇A1

範圍(“AAA1000000”)。激活

範圍(“A1”)。激活

傢伙


你可以簡單地在最後使用這個代碼。 (不要使用False)

Application.CutCopyMode = True




excel-vba