我很挣扎,想知道是否有任何简单的方法来引用当前/活动行中的单元格。
即。 - 我有2张,其中一张有很多信息,第二张我要显示来自Sheet 1上当前/活动行的信息。
所以说在第1页中选择了第5行。然后,如果你去了第2页,第5行的所有信息都将显示在工作表2上。然后,如果您在工作表1上选择第8行,则工作表2上的信息将是已更新为仅显示工作表1中第8行的信息。
当您返回到工作表1时,您在工作表2上所做的任何更改都会反映出来。
我可以在Sheet 2上的单元格中添加一个简单的公式吗?也许有些东西:
cell A1 on sheet 2 have =sheet1(active_row.colum1)
and then cell A2 on sheet 2 have =sheet1(active_row.colum2)
等等
我设法让它使用宏来工作,但唯一的麻烦是,当我更改工作表2上的信息时,它不会更新工作表1上的信息。如果有办法添加我的代码的这个功能,这将是伟大的。
这是我到目前为止的代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim myList
If Target.Address <> Target.EntireRow.Address Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
myList = [{"B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","B11","B12","B13","B14","B15"}] '<- adjust to your need
With Target.EntireRow
For i = 1 To UBound(myList)
Sheets("sheet2").Range(myList(i)).Value = .Cells(i).Value
Next
End With
End Sub
有什么建议吗? :)
答案 0 :(得分:1)
简短的回答是否,Excel无法以这种方式运作:
你不能用公式做到这一点。没有适用于活动工作表或其他工作表上的活动单元格的函数。此外,当您更改选择或在工作表之间移动时,Excel计算引擎无法识别是否需要重新计算。
答案 1 :(得分:0)
是的,你可以这样做,但有点复杂。
您希望在工作表1上选择的行显示在工作表2上,然后能够编辑工作表2以自动更新工作表1。
您需要做的是按原样使用Selection事件,并将该行复制到Sheet 2.然后您必须使用Sheet 1上的Activate事件将行复制回Sheet 1.请注意以下内容代码假定工作表1在单元格中没有工作表函数(公式),您仍然可以这样做,但您必须保留公式并替换它们。
第1页代码:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address <> Target.EntireRow.Address Then Exit Sub
If Target.Rows.Count > 1 Then Exit Sub
Target.EntireRow.Copy
Sheets("Sheet2").Activate
Sheets("Sheet2").Range("A1") = Target.Row
Sheets("Sheet2").Rows(2).PasteSpecial (xlPasteValues)
End Sub
第2页代码:
Private Sub Worksheet_Deactivate()
If Sheets("Sheet2").Range("A1") > 0 Then
Sheets("Sheet2").Rows(2).Copy
Sheets("Sheet1").Activate
ActiveSheet.Rows(Sheets("Sheet2").Range("A1")).EntireRow.PasteSpecial (xlPasteValues)
Sheets("Sheet2").UsedRange.ClearContents
End If
End Sub