繁体   English   中英

如何使用设置范围变量激活工作表

[英]How to activate worksheet using set range variable

如何使用设置范围变量激活工作表?

例如

Dim WorkRng1 as Range

Range.WorkRng1.Activate

如果我在两个工作簿之间使用范围变量,则此代码不起作用。

我在不同的工作簿中设置这些范围:

Dim xTitleId As String
xTitleId = "Compare Ranges"
Set WorkRng1 = Application.InputBox("Please Select TASK ID Range in **INVOICE REVIEW FILE**", xTitleId, Type:=8)
Set WorkRng2 = Application.InputBox("Please Select TASK ID Range in **BUDGET GRID**", xTitleId, Type:=8)
Set WorkRng3 = Application.InputBox("Please Select **UNIT COST** Range in Budget Grid", xTitleId, Type:=8)

Call CompareRanges
'Error Handler
Whoa:
        Select Case Err.Number
            Case 1004
                MsgBox "Check Your Column Letters!", vbInformation, "Oops!"
            Case 424
                Exit Sub
        End Select

然后运行这些循环,这些循环发生在不同的工作簿中:

'clears color format
WorkRng2.Interior.ColorIndex = xlNone
'finds duplicate values
For Each Rng1 In WorkRng1
    For Each Rng2 In WorkRng2
        If Rng1.Value = Rng2.Value Then
            Rng2.Interior.Color = VBA.RGB(254, 255, 255)
            Exit For
        End If
    Next
Next
'find unique values and highlights red
For Each Rng2 In WorkRng2
    For Each Rng3 In WorkRng3
        If Rng2.Value > 0 And Cells(Rng2.Row, Rng3.Column) <> 0 And Rng2.Interior.Color <> VBA.RGB(254, 255, 255) Then
            Rng2.Interior.Color = VBA.RGB(255, 0, 0)
            Exit For
        End If
    Next
Next
'prompts to select blank row to copy
    Set blkRow = Application.InputBox("Please select the 'BLANK' with formulas", "BLANK ROW SELECTION", Type:=8)
'****NEED HELP HERE
'finds unit id below unique value in range 1 and inserts blank row

'i is range 1
Dim i As Variant
'q is range 2
Dim q As Variant

For i = WorkRng1.Cells.Count To 1 Step -1
    For q = WorkRng2.Cells.Count To 1 Step -1
        If Cells(q, WorkRng2.Column).Interior.Color = VBA.RGB(255, 0, 0) And Cells(q, WorkRng2.Column).Value > 0 Then
            If Cells(i, WorkRng1.Column).Value = Cells(q, WorkRng2.Column).Offset(1, 0).Value Then
                blkRow.Copy
                Cells(i, WorkRng1.Column).EntireRow.Insert Shift:=xlDown
                    Application.CutCopyMode = False
                Exit For
            End If
        End If
    Next
Next

我需要激活循环组之间的工作簿

如果您具有范围 ,但没有该范围工作表 ,则可以使用范围的.Parent属性将其激活。

Dim rng1 As Range
Set rng1 = Worksheets(2).Range("A2")
rng1.Parent.Activate

但是,通过在设置Range对象之前正确声明您的Worksheet对象并使用它们,可以轻松避免此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM