根据其他工作表选择选择新范围

时间:2015-05-20 14:58:27

标签: excel vba excel-vba

我得到了以下代码的帮助,这很好,但是它按照前面的表单接收/选择单元格地址,请为动态范围提供代码,以便根据当前选择提供/选择单元格新工作表而不是单元格地址

Sub MatchRange()    
    Dim ady As String    
    ady = Selection.Address    
    Sheets("Sheet2").Select    
    Range(ady).Select
End Sub

链接到以前代码的来源: Match/resize new range based on another sheets selection

很抱歉因为模糊,所以让我们在表格中说我选择范围a1:b50,我想匹配表b中的选择尺寸。所以在这种情况下它将是c51:d100。

3 个答案:

答案 0 :(得分:1)

问题有点模糊,但我将举例说明根据每张纸中选定单元格选择等效尺寸范围的方法。请尝试修改以满足您的需求,如果您有更具体的问题,请告诉我们。

Sub MatchSelectionArea()
    Dim rng As Range
    Dim nRows As Long
    Dim nCols As Long

    Set rng = Selection

    nRows = rng.Rows.Count
    nCols = rng.Columns.Count

    Sheets("Sheet2").Activate

    ActiveCell.Resize(nRows, nCols).Select
End Sub

答案 1 :(得分:0)

当您的代码读取Selection.Address时,您应该在其前面添加您要用作源的工作表。所以:

Sub MatchRange()    
    Dim ady As String    
    ady = Sheets("sheet_name").Selection.Address    
    Sheets("Sheet2").Select    
    Range(ady).Select
End Sub

答案 2 :(得分:0)

我不确定你需要什么,但这是一个例子来获得另一个范围的相同尺寸范围(希望它有帮助)

Set ady = Range("A1:C3")
RngNumCol = ady.Columns.Count
RngNumRow = ady.Rows.Count

NewRngStart = ActiveCell.Address 'Here the starting cell of the new range
NewRngEnd = Range(NewRngStart).Offset(RngNumRow - 1, RngNumCol - 1).Address
Set NewRng = Range(NewRngStart, NewRngEnd)

'Test
For Each mycell In NewRng.Cells
    mycell .Value = "Test"
Next