2011-03-17 33 views
0

我在挣扎,想知道是否有任何简单的方法来引用当前/活动行的单元格。Excel中有没有办法编辑另一个工作表中的选定行?

即 - 我有2片,一个具有大量的信息上,并且所述第二我要上表显示从电流/活动行信息1.

排5在表1中选择。然后所以说如果您转到工作表2,则第5行中的所有信息都将显示在工作表2上。然后,如果您选择第1工作表中的第8行,工作表2上的信息将被更新为仅显示工作表1中第8行的信息。

当你回到表1

是否有可能一个简单的公式我可以添加到她的细胞

您在表2所做的任何更改都将反映et 2?也许沿着线的东西:

cell A1 on sheet 2 have =sheet1(active_row.colum1) 

and then cell A2 on sheet 2 have =sheet1(active_row.colum2) 

等,等

我已经成功地得到它使用宏样的工作,但唯一的问题是,当我改变Sheet 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

它可以用VBA来完成。但是你确定anohter工作表中的选择是否是突出显示范围的正确选择?在第二个或另一个表单中的单元格中写入5或8会更简单。然后,第二张纸上的所有更改都可以由公式驱动。 – momobo 2011-03-17 15:04:53

+0

我不确定你的意思?但是,如果有一种更简单的做事方式,那我肯定会为之努力!:) – ade123 2011-03-17 15:42:40

+0

我希望能够做的就是说我在表格1的第5行上,我希望表格2显示来自sheet1,row5的所有信息。然后,如果我移动到在sheet1上说第12行,我希望sheet2上的信息从显示sheet1,row5中的信息更改为显示sheet1,row12中的信息。我不知道我是否很好地解释了这一点:P – ade123 2011-03-17 15:45:06

回答

0

是的,你可以做到这一点,但这有点复杂

你想在表1中选择的一行中显示Sheet 2上,然后都能够编辑第2页自动更新表1.

你必须做的是,你是如何使用选择事件,并将该行复制到工作表2中。然后,您必须使用工作表1上的激活事件将该行复制回工作表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 
1

简短的回答是不,Excel没有以这种方式工作:

你不能用一个公式做到这一点。没有功能可与活动工作表或其他工作表上的活动单元一起使用。此外,Excel计算引擎无法识别在更改选择或在工作表之间移动时需要重新计算。

+0

我认为这可能是真的。我曾设法在一个宏内完成它,但唯一的麻烦是如果我改变sheet2上的信息,它不会更新sheet1上的信息。如果任何人有任何关于如何添加此功能的提示,那就太棒了。我已经更新了我的问题,以显示我到目前为止的宏代码:) – ade123 2011-03-18 09:52:06

+0

如果将宏指定给按键,则可以轻松地重新运行该宏。它不像你想的那样自动,但总比没有好。 – paulmorriss 2011-03-18 10:13:10

+0

不知道我会如何去真的。这是否意味着如果我在表二上更改了某些内容,它会更新sheet1上的信息?任何帮助,这将是伟大的!因为我已经做了我想做的事情,它只是增加了能够编辑宏显示的信息的功能,并且在主表单上进行此更新将是非常棒的!我已经在顶部更新了我的问题,以显示迄今为止的宏代码:) – ade123 2011-03-18 12:52:39

相关问题