在EXcel中怎样让A1到a10都是引用B1数值,当B1第一次改变时A1不变,A2变(a1还是等於原来的b1)

在EXcel中怎样让A1到a10都是引用B1数值,当B1第一次改变时A1不变,B2变,第二次改变b1里A3变,A1.A2不变....b1的变化没的规律
在EXcel中怎样让A1到a10都是引用B1数值,当B1第一次改变时A1不变,A2变,第二次改变b1里A3变,A1.A2不变....b1的变化没有规律 如果不在同一个表格里要怎麼做? 请大虾指教。谢谢!如b1值为10,现在a1到A10都是10.我现在改b1值为100,让a1还是10,a2等於现在B1的值100.再改变b1的值为X.a1还是10,a2还是100,让A3等於b1现在的值X..A4.....

我明白了,你是用A列来记录B1的变化
按Alt+F11
左边的工程资源管理器里面,选你需要的sheet,双击
粘贴下面的代码
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 2 Then
i = 1
Do
If Cells(i, 1).Value = "" Then
Cells(i, 1).Value = Target.Value
Exit Sub
End If
i = i + 1
Loop
End If
End Sub
你选的这个sheet,就有你说的效果了
而且A列整列都能记录,不只是A1~A10
一点注意:不要删除之前的内容,
比如B1第三次变化之后,删掉了A2的内容,
那么B1第四次变化的内容,将被保存到A2,而不是A4追问

那么如果我要保存的记录为a1~A5再保存到A8~A10这样的不是连续的表格中呢?

追答

也可以,不过你首先要确定好,哪几个单元格不写入B1的变化值,
比如你追问这个,A6和A7不保存,是吧,好,如下
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 And Target.Column = 2 Then
i = 1
Do
If Cells(i, 1).Value = "" And i 6 And i 7 Then
Cells(i, 1).Value = Target.Value
Exit Sub
End If
i = i + 1
Loop
End If
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-29
'右击工作表标签→查看代码,把下边的代码贴到打开的VBA窗口,这就可以了。每个B1的改变的值都会依次记录到A列

Private Sub Worksheet_Change(ByVal Target As Range)
if target.address(0,0)="B1" then
if [a1]="" then
[a1]=[b1]
else
cells([a65536].end(3).row+1,1)=[b1]
end if
end if
End Sub本回答被提问者采纳
相似回答