excel 怎样通过VBA实现单击sheet1任意单元格便链接到sheet2中并且同时复制sheet1所点击单元格内容

再次单击sheet1中任意单元格又链接到sheet2中同时复制sheet1单元格内容至下一行。点击多个单元格或点击整行时又是如何实现?感谢!

第1个回答  2011-08-31
实现很简单,但是你先说清楚要求:
1、表1 只点一个单元,表2下一行什么位置对应,需要对列吗?
2、表1点多个单元格,表2具体干什么?
3、表1点行或列,表2具体干什么?追问

恩,谢谢你的提醒,确实没有描述清楚
1、表1 只点一个单元,表2下一行相同列
2、表1点多个单元格(这个是相邻的两个单元格就可以了),表2跟只点一个单元格一样,同样复制相同的两个单元格内容到表2中
3、表1点行或列,一行和一列也是一样的,只是将单元格扩大至行或者列

追答

修改如下,如果选择多行,不执行,其他情况完全按你的要求了
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count > 1 Then GoTo fend
For i = 1 To 256
xl = Sheets("sheet2").Cells(65536, i).End(xlUp).Row
xl = Application.WorksheetFunction.Max(xl, ll)
ll = xl
Next i
Target.copy Sheets("sheet2").Cells(xl + 1, Target.Column)
Sheets("sheet2").Activate
fend:
End Sub

追问

谢谢你!基本都是符合条件了,就是还想请问下,如果有多个表(表1、表2、表3...)将这些统一链接到表10这样是需要怎么修改呢?额,我不太会使用,麻烦了!

追答

这是除了当前页以外所有页都对应的代码,你贴入表10就行,如果另有表不用对应,将表名加入If ws.Name = ActiveSheet.Name Then GoTo nextws进行排除就可以了。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each ws In Worksheets
ll = 0
xl = 0
If ws.Name = ActiveSheet.Name Then GoTo nextws
If Target.Rows.Count > 1 Then GoTo fend
For i = 1 To 256
xl = Sheets("" & ws.Name).Cells(65536, i).End(xlUp).Row
xl = Application.WorksheetFunction.Max(xl, ll)
ll = xl
Next i
Target.copy Sheets("" & ws.Name).Cells(xl + 1, Target.Column)
nextws:
Next ws
fend:
End Sub

本回答被提问者采纳
第2个回答  2011-08-31
先手工操作一次并记录为宏,然后到VBA中编辑代码段就是。描述不清楚,不知道你所说的链接和复制到底是什么意思,帮不了你。追问

链接就是点击sheet1单元格后便跳到sheet2中,就是相单于超链接那样,复制就是点击sheet1单元格后跳到sheet2的单元格时就有跟sheet1中单元格中同样的内容呢!

追答

明白了!你的VBA怎么样?把你刚才描述的手工作一遍,记录成宏命令,然后到VBA环境中编辑所生成的代码段,并在代码段前再加一个Msbox代码段和一些循环语句,以保证在按“取消”前,宏命令处于运行状态,就可以反复进行操作了。
不知道你这样做的目的,应该有更好的做法的!

第3个回答  2011-08-31
就是相当设一个录入窗口,建立一个控件实现将录入内容保存到一个库表的最后一行吧?追问

不是录入,sheet1中是本身已录好的,需要的是点击sheet1中,sheet2中便可以得到点击sheet1的内容

追答

那只能写宏吧。

相似回答