как предотвратить изменение значения активной ячейки - PullRequest
0 голосов
/ 16 января 2020

Код здесь переупорядочивается из одного диапазона листов, чтобы соответствовать порядку в сводке на другом листе.

проблема в том, что значение «first» установлено в activecell и, кажется, изменяется, а диапазон изменяется как результат. как я могу сохранить значение "first" от изменения?


Sub Reorder()
'
' Macro8 Macro
'

'

Dim First As Range
Dim Range1 As Range
Dim Range2 As Range
Dim lRow As Long
Dim Count As Long
Dim Net As String
Dim Line As Range
Dim Netrng As Range
Dim Swith As Range

    If ActiveCell.Column = 2 Then
    Set First = ActiveCell
    Set Range1 = Range(First, First.End(xlDown))
    ActiveWindow.ActivatePrevious

    ActiveSheet.Range("B5").Activate
    lRow = Cells(Rows.Count, 1).End(xlUp).row - 6
    Set Range2 = Range(ActiveCell.Offset(3, -1), ActiveCell.Offset(lRow, -1))


    Count = 1
      While Count <= Range2.Count
      Set Line = Range2.Rows(Count)
      Net = Line.Value


      ActiveWindow.ActivatePrevious

      Range1.Select
      Set Netrng = Range1.Find(What:=Net, After:=ActiveCell, LookIn:=xlValues, _
      LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
      MatchCase:=False, SearchFormat:=False)


      If Not Netrng Is Nothing And Netrng.row <> Range1.Rows(Count).row Then
       Rows(Netrng.row & ":" & Netrng.row).Select
       Selection.Cut
       Rows(Range1.Rows(Count).row & ":" & Range1.Rows(Count).row).Select
       Selection.Insert Shift:=xlDown
      End If
      ActiveWindow.ActivatePrevious
      Count = Count + 1
      Wend
 Else
MsgBox "Please select correct column"
End If



End Sub

1 Ответ

0 голосов
/ 16 января 2020

Я понял, как заставить работать эти изменения ...

Dim First As String
First = ActiveCell.Address
Set Range1 = Range(First, Range(First).End(xlDown))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...