佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1722|回复: 23

EXCEL可以做到A=A-B吗?

[复制链接]
发表于 10-6-2008 02:24 PM | 显示全部楼层 |阅读模式
EXCEL可以做到A=A-B吗?

比如说我要在A1写一个FORMULA=A1-B2,EXCEL会出一个Message Box, 说是Cercular Reference Warning。

有谁会吗?

其实我是要在固定的同一个格子一直能就另一个格子的变化而算出相应的答案。

例如说:
一开始,A1=50
    B2=0,
当            B2=5的时候,A1=50-5=45。
接着        B2=3,A1=45-3=42。

这样一直算下去。。。
各位大哥大姐可以帮帮小弟吗?
回复

使用道具 举报


ADVERTISEMENT

发表于 10-6-2008 02:31 PM | 显示全部楼层
你必须在另一个格子才能弄..
比如说 A1 =A2-A3
当A2=50,A3=5
那么A1就会显示45
回复

使用道具 举报

 楼主| 发表于 10-6-2008 02:56 PM | 显示全部楼层
原帖由 普通路人 于 10-6-2008 02:31 PM 发表
你必须在另一个格子才能弄..
比如说 A1 =A2-A3
当A2=50,A3=5
那么A1就会显示45


可是这样的话A2还是不会自动换value啊。。。
其实我是要弄Inventory File的。
如果我的客人用我的Excel User Form买一种货品,写好Quantity在某个格子后,我Inventory File里的Quantity会自动根据这个格子来更新。
回复

使用道具 举报

发表于 10-6-2008 06:32 PM | 显示全部楼层
原帖由 Ha_He_Hi_Ho_Hu 于 10-6-2008 02:56 PM 发表


可是这样的话A2还是不会自动换value啊。。。
其实我是要弄Inventory File的。
如果我的客人用我的Excel User Form买一种货品,写好Quantity在某个格子后,我Inventory File里的Quantity会自动根据这个格子来更 ...


弄多一个Total 的 Column 吧!

也方便你 track 回你的产品销量还是什么的!

[ 本帖最后由 kiam06 于 10-6-2008 06:33 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 10-6-2008 10:06 PM | 显示全部楼层
原帖由 kiam06 于 10-6-2008 06:32 PM 发表


弄多一个Total 的 Column 吧!

也方便你 track 回你的产品销量还是什么的!


其实我要用一个sheet来做User Form,然后根据里面的Quantity自动更新我差不多40个sheet的Inventory File。

应该是没办法弄到的了。。。上网差了,好像说是cannot do reference to its own value in formula for cells or VBA.
回复

使用道具 举报

发表于 10-6-2008 10:41 PM | 显示全部楼层
原帖由 Ha_He_Hi_Ho_Hu 于 10-6-2008 10:06 PM 发表


其实我要用一个sheet来做User Form,然后根据里面的Quantity自动更新我差不多40个sheet的Inventory File。

应该是没办法弄到的了。。。上网差了,好像说是cannot do reference to its own value in formula f ...


用VBA是可以做到的,不过以我的工作经验来说,这并不是好方法。。。
回复

使用道具 举报

Follow Us
发表于 11-6-2008 08:36 AM | 显示全部楼层
嘿,试试这个吧!
在excel VBA 里,在你的sheet里copy & paste 这个吧!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells(1, 1) = Cells(1, 1) - Cells(1, 2) 'A1=A1-B1 你要的东西
Cells(1, 2) = "" 'B1=空 ,不然等下A1会一减 B1
End Sub
回复

使用道具 举报

 楼主| 发表于 14-6-2008 10:55 PM | 显示全部楼层
我用一个很麻烦的方法解决了这个问题。。。

我去Enable Iterative Calculation, 把我的Maximum Iterations 设定为1或2(视情况而定)。

当然其中要用到 IF 的 Function 来暂时性分开它们之间的 circular reference

我是从网上看到接近酱的解决方法,可是我直接照搬葫芦试过却不能。

所以我还是花了一天的时间来研究,改良并应用它。。。

[ 本帖最后由 Ha_He_Hi_Ho_Hu 于 14-6-2008 10:58 PM 编辑 ]
回复

使用道具 举报


ADVERTISEMENT

发表于 15-6-2008 02:04 PM | 显示全部楼层
原帖由 Ha_He_Hi_Ho_Hu 于 14-6-2008 10:55 PM 发表
我用一个很麻烦的方法解决了这个问题。。。

我去Enable Iterative Calculation, 把我的Maximum Iterations 设定为1或2(视情况而定)。

当然其中要用到 IF 的 Function 来暂时性分开它们之间的 circular re ...


然后呢?问题决解了吗?

你楼上那个不行吗??
回复

使用道具 举报

 楼主| 发表于 17-6-2008 12:36 AM | 显示全部楼层
原帖由 kiam06 于 15-6-2008 02:04 PM 发表


然后呢?问题决解了吗?

你楼上那个不行吗??


问题算是解决了。。。
我不会用VBA。。。
回复

使用道具 举报

发表于 17-6-2008 08:58 AM | 显示全部楼层
原帖由 Ha_He_Hi_Ho_Hu 于 17-6-2008 12:36 AM 发表


问题算是解决了。。。
我不会用VBA。。。


我教你。。。
开新 Excel,原名为Book1
按 Alt + F11, 会跑出一个Microsoft Visual Basic - Book1 的窗口出来,
double click 左边窗口的 VBAProject (Book1) > Sheet1 (Sheet1),右边会有新窗口跳出来,
在新窗口的左上角会看到一个(General),按它选为Worksheet
然后你会看到
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

在两行的中间paste入第七楼提供的code,变成...
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Cells(1, 1) = Cells(1, 1) - Cells(1, 2)    'A1=A1-B1 你要的东西
Cells(1, 2) = ""    'B1=空 ,不然等下A1会一直减 B1

End Sub

然后关掉Microsoft Visual Basic - Book1,回到Excel - Book1,
在A1打总数,B1打被减的数目,然后回键,你就会看到A1=A1-B1,B1不见了。。。
回复

使用道具 举报

 楼主| 发表于 17-6-2008 03:35 PM | 显示全部楼层
原帖由 kiam06 于 17-6-2008 08:58 AM 发表


我教你。。。
开新 Excel,原名为Book1
按 Alt + F11, 会跑出一个Microsoft Visual Basic - Book1 的窗口出来,
double click 左边窗口的 VBAProject (Book1) > Sheet1 (Sheet1),右边会有新窗口跳出来,
在 ...


真的可以耶!早知用你的方法啦。。。简单!容易!直接!

谢谢你哦!

嗯。。。如过牵涉到两个worksheet甚至是workbook的话呢?要怎么做?
回复

使用道具 举报

发表于 17-6-2008 03:54 PM | 显示全部楼层
原帖由 Ha_He_Hi_Ho_Hu 于 17-6-2008 03:35 PM 发表


真的可以耶!早知用你的方法啦。。。简单!容易!直接!

谢谢你哦!

嗯。。。如过牵涉到两个worksheet甚至是workbook的话呢?要怎么做? ...

'在左边VBAProject double click ThisWorkbook ,然后在右上边(General)换去Workbook
旁边的 Open 换去 SheetSelectionChange。内容一样。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Cells(1, 1) = Cells(1, 1) - Cells(1, 2)    'A1=A1-B1 你要的东西
Cells(1, 2) = ""    'B1=空 ,不然等下A1会一直减 B1

End Sub

不客气。。。
回复

使用道具 举报

 楼主| 发表于 17-6-2008 04:45 PM | 显示全部楼层
如果说我要做
A1(Workbook1)= A1(Workbook1) - B1(Workbook2)
的话要怎么做呢?

可以应用在drop-down list吗?如果B1是drop-down list?
回复

使用道具 举报

 楼主| 发表于 17-6-2008 04:48 PM | 显示全部楼层
另外我想问说EXCEL的drop-down list能用到其他Worksheet或Workbook的named range吗?

我之前弄得到的。但现在不知为什么不能了。

You cannot use references to other worksheets or workbooks for data validation criteria.

[ 本帖最后由 Ha_He_Hi_Ho_Hu 于 17-6-2008 04:52 PM 编辑 ]
回复

使用道具 举报

发表于 17-6-2008 04:58 PM | 显示全部楼层
原帖由 Ha_He_Hi_Ho_Hu 于 17-6-2008 04:45 PM 发表
如果说我要做
A1(Workbook1)= A1(Workbook1) - B1(Workbook2)
的话要怎么做呢?

可以应用在drop-down list吗?如果B1是drop-down list?


给我些时间研究,现在没空,你的drop-down list是怎样弄出来先???
回复

使用道具 举报


ADVERTISEMENT

发表于 17-6-2008 04:58 PM | 显示全部楼层
原帖由 Ha_He_Hi_Ho_Hu 于 17-6-2008 04:48 PM 发表
另外我想问说EXCEL的drop-down list能用到其他Worksheet或Workbook的named range吗?

我之前弄得到的。但现在不知为什么不能了。

You cannot use references to other worksheets or workbooks f ...


不是很明白。。。。
回复

使用道具 举报

 楼主| 发表于 18-6-2008 10:38 AM | 显示全部楼层
原帖由 kiam06 于 17-6-2008 04:58 PM 发表


给我些时间研究,现在没空,你的drop-down list是怎样弄出来先???


用EXCEL简单的方法。
Data > Data tools > Data Validation
回复

使用道具 举报

 楼主| 发表于 18-6-2008 10:39 AM | 显示全部楼层
原帖由 kiam06 于 17-6-2008 04:58 PM 发表


不是很明白。。。。


这个问题我解决了。原来我少做一个步骤。。。
回复

使用道具 举报

发表于 18-6-2008 10:48 AM | 显示全部楼层
原帖由 Ha_He_Hi_Ho_Hu 于 17-6-2008 04:45 PM 发表
如果说我要做
A1(Workbook1)= A1(Workbook1) - B1(Workbook2)
的话要怎么做呢?

可以应用在drop-down list吗?如果B1是drop-down list?


那么我看要在 WB1 开多一个sheet(X),里面的东西就放 = [Workbook2.xls]Sheet1!$A$1
然后  A1(Workbook1)= A1(Workbook1) - A1(Workbook1)sheet(X)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 27-12-2025 04:22 AM , Processed in 0.126480 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表