在excel中如何用VB实现以下内容
没有附表,从何说起?“男性”是何列? “张三”又是何列? 表一、表二名称呢?
雾里看花,以下是我曾使用的,希望对你有帮助![其实用公式也很方便,简单的不一定要用VBA。如:=VLOOKUP(A2,花名册!A2:B9,2,FALSE)]
Private Sub Worksheet_Change(ByVal Target As Range) '单元格变更启动的程序
c = Target.Column '取变更单元格的列数
r = Target.Row '取变更单元格的行数
v = Target.Value
If r < 2 Then Exit Sub '如果行数小于2退出
Dim rg As Range '定义一个单元格变量
With Worksheets("花名册") '使用“花名册”表
If c = 3 Then '如果变更单元格的列数是3
ed = .[a65536].End(xlUp).Row '找出“花名册”表最后一行的行数
For Each rg In .Range("f5:f" & ed) '在“花名册”表f列第五行至最末行中找与变更单元格相同的值
If rg = Target.Value Then
h = rg.Row '取找到行的行数
'Target.Value = .Range("f" & h) '变更单元格变为“花名册”表找到行的f列
Cells(r, c + 1).Value = .Range("g" & h) '变更单元格所在行g列变为“花名册”表找到行的g列
Cells(r, c + 2).Value = .Range("h" & h) '变更单元格所在行h列变为“花名册”表找到行的h列
Cells(r, c + 3).Value = .Range("i" & h) '变更单元格所在行i列变为“花名册”表找到行的i列
Cells(r, c + 4).Value = "√"
Cells(r, c + 8).Value = .Range("t" & h)
Cells(r, c + 9).Value = .Range("m" & h)
Cells(r, c + 12).Value = .Range("c" & h)
Cells(r, c - 1).Value = .Range("d" & h)
Exit For
End If
Next '第7列变更处理结束
If rg Is Nothing Then If MsgBox("您的输入有误,查找不到," & vbNewLine & Chr(13) & "请核对后再输入!", 64, "提示") Then Exit Sub '如果没找到退出
'r0 = rg.Row
'Do While v rg.Value
'Set rg = .Range("f5:f" & ed).FindNext(rg)
'If rg.Row = r0 Then Exit Sub
'Loop
End If
End With '使用“花名册”表结束
End Sub '程序结束
'工程中添加引用Microsoft Excel 9.0 Object Library
Private Sub Command1_Click()
Dim xlApp As Excel.Application
Dim xlBookA As Excel.Workbook
Dim xlBookB As Excel.Workbook
Dim xlBookC As Excel.Workbook
Dim xlSheetA As Excel.Worksheet
Dim xlSheetB As Excel.Worksheet
Dim xlSheetC As Excel.Worksheet
Dim xlRange As Excel.Range
Dim strPathA As String
Dim strPathB As String
Dim strPathC As String
strPathA = "C:\BOOK1.xls"
strPathB = "C:\BOOK2.xls"
strPathC = "C:\BOOK3.xls"
If Dir(strPathC) "" Then Kill strPathC
Set xlApp = CreateObject("EXCEL.Application")
xlApp.Visible = True
xlApp.WindowState = xlMaximized
Set xlBookA = xlApp.Workbooks.Open(strPathA)
Set xlBookB = xlApp.Workbooks.Open(strPathB)
Set xlBookC = xlApp.Workbooks.Add()
Set xlSheetA = xlBookA.Worksheets("Sheet1")
Set xlSheetB = xlBookB.Worksheets("Sheet1")
Set xlSheetC = xlBookC.Worksheets("Sheet1")
'******************主要实现部分**********************
xlSheetA.Range("A1:J30").Copy '拷贝book1的sheet1(注:A1:J30是选中区域)
xlSheetC.Select
xlSheetC.Paste '粘贴到book3的sheet1
xlSheetB.Range("A1:J30").Copy '拷贝book2的sheet1
xlSheetC.Range("A31").Select
xlSheetC.Paste '粘贴到book3的sheet1
'******************主要实现部分***********************
xlSheetC.Range("A1").Select
xlSheetC.SaveAs strPathC
xlBookA.Close
xlBookB.Close
'xlBookC.Close
'
'xlApp.Quit
End Sub
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中的”宏“),出现如下图界面,选择要运行的宏,点击执行即可。
我使用的办法有两种:
第一种办法:使用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",输入“俄罗斯”就会显示“莫斯科”
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
死百度、臭百度、笨百度,还不改改自己的错误!
如何在excel中输入方框□?
该键直至输入完代码后才可放开)。三、接着依次按下小键盘区域的“4、1、4、6、1”。四、最后松开一直按着的Alt键即可输入一个“□”方框符号。注意事项:1、输入该符号不需要特殊的输入法,基本上在任何输入法下都可使用该方法输入。2、部分特殊符号在Office软件中不是很兼容。
如何用excel中IF函数根据成绩评定等级?
excel如何用if函数评定等级电脑打开Excel表格。打开Excel表格后,输入公式=IF(D7=90,优,IF(D7=80,良,IF(D7=60,中,差)))。在弹出的“插入函数”对话框中,在“搜索函数”中输入”if“,并单击”转到“按钮,在”选择函数“对话框中选中”if“,单击”确定“按钮。在Excel中如何利用IF函数...
excel排名公式怎么用
在Excel中使用RANK函数可以轻松实现排名。只需将分数列设置为数字格式,然后在另一个单元格中输入公式,即“=RANK(分数单元格, 整个分数列, 排名方式)”,其中排名方式为0表示降序排名,1表示升序排名。 抢首赞 评论 分享 举报 为你推荐:特别推荐 癌症的治疗费用为何越来越高? 电动车多次降价,品质是否有保障? 什么...
excel中irr函数怎么用
5、对函数IRR计算结果的估计值。MicrosoftExcel使用一种迭代技术来计算IRR。从guess开始,IRR循环遍历计算,直到结果在0.00001%范围内精确。如果IRR在尝试20次后找不到结果,则#NUM!错误值。在EXCEL中如何用IRR函数(请具体数据解释)1、Guess为对函数IRR计算结果的估计值。Excel使用迭代法计算函数IRR。从...
怎样在excel表格中求和?
这个我经常用excel统计学生的成绩的,让我来给你示范一下怎么做吧。 (我说一下我用的操作软件吧。笔记本电脑是联想G480,系统Windows 10操作系统,用的是wps办公软件个人版) 例如:我需要统计我班上这次段考的总分。我班上是52人,每个同学的段考成绩都录入了对应的表格。 那么求总分的步骤如下: 1、鼠标点击编号为...
excel中如何跨工作簿使用公式?
Excel中公式链接的原理是通过链接源文件中的单元格数据来计算结果。如果源文件未打开,Excel就无法读取源文件中的数据,因此在公式中使用链接时就会出现#VALUE!的错误提示。因此,为了能够正确地链接源文件中的数据,必须先打开源文件。如果源文件已经打开,Excel会自动读取源文件中的数据,这时公式链接就能够...
如何使用excel表格呢?
使用excel表格时,先创建一个空白的表格,再按照想要实现的效果进行编辑,做完之后保存即可。工具:电脑、Excel2007,下面是使用excel表格的方法:1、首先双击打开电脑桌面上的Excel办公软件。2、根据你的需要先选择一些部分的单元格。3、选中后右键单击选中“设置单元格格式”。4、打开设置“设置单元格格式”...
怎么用excel算出增长率?
1、打开Excel,这是一张计算增长率的表格,上年数:100,今年数:120,要求计算增长率; 2、在编辑栏输入公式:=(B2-A2)\/A2,即是=(今年数-上年数)\/上年数; 3、点击上面的【绿勾】; 4、点击上面的【百分比样式】; 5、增长率是20%,用excel算出增长率操作完成啦! 以上就是怎么用excel算出增长率的教程,希望对...
如何在Excel中按字数多少进行筛选?
在Excel中按字数多少进行筛选,使用自定义筛选就可以了。下面我就演示一下详细的操作步骤❥(ゝω・✿ฺ) (电脑型号:联想拯救者刃7000K,软件版本:WPS 11.1.0.13703) 1、打开一个需要筛选的excel表格; 2、选择数据所在的列,点击开始,再点击筛选; 3、点击筛选▽后,点击文本筛选; 4、选择自定义筛选; 5、选...
excel中公式如何使用?
简单的公式有加、减、乘、除等计算。Excel函数就是一些定义的公式。Excel函数有11类,分别是数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数以及用户自定义函数。下面以实际操作来讲解下主要函数公式的使用方法和步骤(EXCEL2007为...
父独乳酸: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim x As Integer x = InputBox("请输入工号:") MsgBox Cells(Application.WorksheetFunction.Match(x, Range("a:a"), 0), 2) & " " & Cells(Application.WorksheetFunction...
调兵山市13075843350: 求助,在EXCEL表中用VB实现下面的功能. - ?
父独乳酸: '工程中添加引用Microsoft Excel 9.0 Object Library Private Sub Command1_Click() Dim xlApp As Excel.Application Dim xlBookA As Excel.Workbook Dim xlBookB As Excel.Workbook Dim xlBookC As Excel.Workbook Dim xlSheetA As Excel....
调兵山市13075843350: VB在excel中实现功能 - ?
父独乳酸: 先在VB窗体上处理好数据,然后把处理好数据保存在数据库表里,最后把数据库上处理好的数据导到Excel上.
调兵山市13075843350: 如何用VB在EXCEL里面处理数据 - ?
父独乳酸: Private Sub Command1_Click() '工程->引用->Microsoft ActiveX Data Objects 2.X Library Dim xlConn As New ADODB.Connection Dim xlRs As New ADODB.Recordset Dim strConn As String Dim xlCnt As Integer StrConn = "Provider=...
调兵山市13075843350: 利用VB编程: 如何实现在excel中,当选择表格内的下拉框,选择某个选项然后在其他表格里显示所选择的内容 - ?
父独乳酸: 如果只是做一个简单的类似目录的功能,点击目录就跳转到相应的表单,直接在工作薄中新建一张表列出目录,在为每一条加上当前工作薄中相应的表单超链接不久可以了!
调兵山市13075843350: 请问excel中如何用VB??
父独乳酸: EXCEL表打开,按“ALT”+“F11”进入VBA编辑状态,点击“工程资源管理器”图标,在“工程资源管理器”窗体内-->鼠标右键-->“插入”->“模块”;出现“模块1”,点击“属性窗口”图标对“模块1”进行命名;双击命名后的模块名称,在右边的“窗体”内就可以编辑VBA代码了.
调兵山市13075843350: 如何用vb控制excel表格的具体操作 - ?
父独乳酸: 全面控制 Excel 首先创建 Excel 对象,使用ComObj: Dim ExcelID as Excel.Application Set ExcelID as new Excel.Application 1) 显示当前窗口:ExcelID.Visible := True; 2) 更改 Excel 标题栏:ExcelID.Caption := '应用程序调用 Microsoft Ex...
调兵山市13075843350: 如何用vb操作excel里的一列数据 - ?
父独乳酸: 以下是在VB6.0中标准代码,你可以改成VBA的形式.按钮1点击后创建文件,按钮2点击后修改文件达到替换列.你可以手动查看修改前后数据的差异.'工程-引用-Microsoft Excel Object library(勾选此项) Dim xlApp As Excel.Application Dim ...
调兵山市13075843350: 如何用VB向EXCEL里写数据? - ?
父独乳酸: VB可将使用Object 数据类型对EXCEL对象进行引用.Object 数据类型,Object 变量存储为 32 位(4 个字节)的地址形式,其为对象的引用.利用 Set 语句,声明为 Object 的变量可以赋值为任何对象的引用.注意 虽然以 Object 类型声明的变...
调兵山市13075843350: 如何VB实现对Excel的数据查询 - ?
父独乳酸: 在VB中建立到excel表的连接,就可以打开文件了..然后读取excel文件的代码和VBA差不多,具体的自己调试下!下面代码要求执行代码的电脑上必须安装了excel程序(这样可以不添加对excel的...