2016-02-26 108 views
0

我遇到了輕微問題的錯誤。目標代碼如下:允許用戶選擇要修改的工作表(HR1 - HR20),然後選擇原始工作表上要複製到選定工作表的單元格(單元格範圍)。Excel VBA查找/記錄用戶選擇

問題是用戶必須選擇他們想要更改的範圍,然後運行宏(通過按鈕),選擇工作表,然後重新設置範圍。如果他們只有在運行宏之前選擇了一個單元格,那麼即使在突出顯示該範圍之後,該宏也會複製該單元格的值,但在宏提示時他們需要更改該值。有沒有辦法告訴宏只使用選定的範圍?

Dim WSN As Worksheet 
Set WSN = ActiveSheet 
Dim sheetname As String 
sheetname = ActiveSheet.Name 

Unload Me 

On Error GoTo Cancel 
    Dim rng As Range 
    Dim myString As String 
    Set rng = Application.InputBox("select cell range with changes", "Cells to be copied", Default:="Select Cell Range", Type:=8) 
Application.ScreenUpdating = False 
    myString = Selection.Address(ReferenceStyle:=xlA1, RowAbsolute:=False, ColumnAbsolute:=False) 
'MsgBox Selection.Address(ReferenceStyle:=xlA1, RowAbsolute:=False, ColumnAbsolute:=False) 
    Range(myString).Copy 

If CheckBoxALL.Value = True Then 
    Sheets("Cost").Select 
     For i = 1 To 20 
     ActiveSheet.Next.Select 
      rngS = rng.Address 
      Range(rngS).Select 
       ActiveSheet.Paste 
        ActiveWindow.ScrollRow = 85 
     Next i 
    End If 

If CheckBoxHR1.Value = True Then 
    Sheets("Cost").Next.Select 
      rngS = rng.Address 
      Range(rngS).Select 
       ActiveSheet.Paste 
        ActiveWindow.ScrollRow = 85 
    End If 
+0

那麼爲什麼用戶要先選擇範圍步?? – findwindow

+0

步驟應該對sheet1進行更改,按下宏按鈕,通過userform選擇圖紙,選擇圖紙,單擊應用,然後選擇需要複製的區域。我的問題是,如果我剛剛在宏按鈕按下之前選擇了一個隨機單元格,宏將從隨機單元格中獲取數據而不是用戶突出顯示的範圍。 –

回答

1

沒有測試,但我認爲你可以使用 'RNG' 變量直接

我的意思是

,而不是

Set rng = Application.InputBox("select cell range with changes", "Cells to be copied", Default:="Select Cell Range", Type:=8) 
    Application.ScreenUpdating = False 
    myString = Selection.Address(ReferenceStyle:=xlA1, RowAbsolute:=False, ColumnAbsolute:=False) 
'MsgBox Selection.Address(ReferenceStyle:=xlA1, RowAbsolute:=False, ColumnAbsolute:=False) 
    Range(myString).Copy 

,你可以走這條路

Set rng = Application.InputBox("select cell range with changes", "Cells to be copied", Default:="Select Cell Range", Type:=8) 
    Application.ScreenUpdating = False 
    rng.Copy 
+0

好消息,完美運作。在我運行宏之前,我仍然不確定爲什麼它使用任何我活動過的單元格,但現在我認爲這是無關緊要的。 –