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