在excel中如何用VB实现以下内容

比如在A1中输入“中国”就会在B2中显示“111”,在A1中输入“美国”就会在B2中显示“1123”?注:本人是菜鸟,请详细说明,谢谢... 比如在A1中输入“中国”就会在B2中显示“111”,在A1中输入“美国”就会在B2中显示“1123”? 注:本人是菜鸟,请详细说明,谢谢 展开
 我来答
鱼木混猪哟
高粉答主

2015-11-11 · 专注Office,尤其Excel和VBA
鱼木混猪哟
采纳数:6078 获赞数:33696

向TA提问 私信TA
展开全部

sub main()

if cells(1,"A").value="中国" then cells(1,"B")="111"

if cells(1,"A").value="美国" then cells(1,"B")="1123"

end sub


以此为例,在Excel中调用VBA程序的操作步骤如下(Excel2007为例):


1.选择”开发工具“选项卡,点击”Visual Basic“(或者用快捷键Alt+F11)

2.出现VBA编辑界面,注意看左侧,选择需要运行代码的工作表,此例为Sheet1;双击进入Sheet1相关程序编辑界面

3.在程序编辑区域,复制上上述代码

4.点击上面的三角号,运行程序

5.关闭VBA界面,返回工作表,就可以看到程序运行结果,如下图:

6.如果再次运行程序,可以用快捷键Alt+F8(或者步骤1中的”宏“),出现如下图界面,选择要运行的宏,点击执行即可。

万斛山语
2011-08-16 · TA获得超过573个赞
知道小有建树答主
回答量:561
采纳率:55%
帮助的人:114万
展开全部
我使用的办法有两种:
第一种办法:使用WorkSheet的SelectionChange事件
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
此处放置事件处理程序,该事件处理程序之外,设置两个全局变量,记录上一次Range行列号及对应的文本内容,如果上次Range对应的行号是1、列号是1并且单元格内容是“中国”则用程序将B1格的内容设置为“111”,若上次Range对应的行号是1、列号是1并且单元格内容是“美国”则用程序将B1格的内容设置为“1123”。
End Sub
这种办法需要你了解WorkSheet的事件处理、Range对象的操作及其VBA语言,我以前使用过该技术实现过比较复杂的查表工作。我在一个Access数据表中有一个词典,当在第一列中某一单元格输入一个字符串时,就在SelectionChange事件中,从词典中查找该关键词,找到后,将词典条目对应的内容填入第二列对应的单元格内。不过,可以不使用VB,直接使用Excel的两个函数实现类似的功能,这就是第二种办法。
第二种办法:使用match和index函数
使用这种你需要额外使用一个sheet作为当作一个词典,假设我们将Sheet2作为词典使用,Sheet1作为输入表格使用。
假如我们已经在Sheet2中输入数据如下
A1:中国 B1:111
A2:美国 B2:1123
A3:日本 B3:japan
A4:俄罗斯 B4:莫斯科
......

为了说明清楚,我们在Sheet1中插入一个中间列(辅助列),假设为C列。
C2单元格中输入公式:=MATCH(A1,Sheet2!A:A,0)
B2单元格中输入公式:=INDEX(Sheet2!B:B,Sheet1!C2,0)
这样,你在A1中输入“中国”就会在B2中显示“111",输入“美国”就会显示“1123”,输入“日本”就会显示“japan",输入“俄罗斯”就会显示“莫斯科”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hptony
2011-08-16 · TA获得超过378个赞
知道小有建树答主
回答量:165
采纳率:0%
帮助的人:112万
展开全部
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim wkst As Worksheet
Dim content As String

Set wkst = ThisWorkbook.Worksheets("Sheet1")
content = wkst.Range("A1").Value

Select Case content
Case "中国":
wkst.Range("B1").Value = "111"
Case "美国":
wkst.Range("B1").Value = "222"
End Select

Set wkst = Nothing
End Sub
更多追问追答
追问
麻烦详细说明代码写在什么地方,如何才能实现!!谢谢
追答
写在WorkSheet后台代码里面,全部copy过去就好了,上面的代码是针对Sheet1的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Ynzsvt
2015-10-26 · TA获得超过6665个赞
知道大有可为答主
回答量:1.5万
采纳率:40%
帮助的人:2685万
展开全部
死百度、臭百度、笨百度,还不改改自己的错误!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式