VB自动填写网页表格的程序
vb.net开发中使用excel插件的代码
⽤做excel插件开发,可能需要为excel添加⾃定义的⼯具栏。
这个也是⾮常的简单的。
以下是引⽤⽚段: Public Class ConnectClass Connect Implements Extensibility.IDTExtensibility2 Dim app As Excel.Application Dim wb As Excel.Workbook Dim ws As Excel.Worksheet Dim addInInstance As Object Dim pasteText As mandBarButton ‘定义⼀个⼯具栏按钮 Public Sub OnBeginShutdown()Sub OnBeginShutdown(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnBeginShutdown End Sub Public Sub OnAddInsUpdate()Sub OnAddInsUpdate(ByRef custom As System.Array) ImplementsExtensibility.IDTExtensibility2.OnAddInsUpdate End Sub Public Sub OnStartupComplete()Sub OnStartupComplete(ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnStartupComplete End Sub Public Sub OnDisconnection()Sub OnDisconnection(ByVal RemoveMode As Extensibility.ext_DisconnectMode, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnDisconnection End Sub Public Sub OnConnection()Sub OnConnection(ByVal application As Object, ByVal connectMode As Extensibility.ext_ConnectMode, ByVal addInInst As Object, ByRef custom As System.Array) Implements Extensibility.IDTExtensibility2.OnConnection If TypeOf (application) Is Excel.Application Then app = CType(application, Excel.Application) addInInstance = addInInst wb = app.ActiveWorkbook ws = CType(wb.ActiveSheet, Excel.Worksheet) Dim toolbar As mandBar = Nothing If Not app Is Nothing Then toolbar = AddToolbar(app, "专⽤⼯具栏") ’添加⼯具栏 End If ’ 建⽴按钮添加⽂本 pasteText = MakeANewButton(toolbar, "Insert text", 1044, AddressOf pasteText_Click) ’添加⼯具栏按钮并帮定事件 End Sub ’添加⼯具栏 Private Function AddToolbar()Function AddToolbar(ByVal ex As Excel.Application, _ ByVal toolbarName As String) As mandBar Dim toolBar As mandBar = Nothing Try ’ 为add-in建⽴⼀个命令条 toolBar = CType(mandBars.Add(toolbarName, Microsoft.Office.Core.MsoBarPosition.msoBarTop, , True),。
VB制作网页自动填表(强烈推荐)
VB制作网页自动填表(强烈推荐)VB制作简单模拟器教程入门版第一讲如何用VB编程打开一个网页:由于是为做模拟器做铺垫,所以就不介绍别的方法,只介绍一种最简单的用webbrowser控件实现(实际是其他的方法我还没有学会)。
下面我们就开始步入模拟器的大门了:一、先打开VB新建一个工程二、在工具条上点右键选部件(我用的是中文版VB)或者选工程菜单,点部件三、找到Microsoft Internet Controls,在前面打挑,然后确认就可以看到在工具条上多出来一个地球样的图标,我们以后的实现就都围绕着他来进行了。
四、添加一个WebBrowser1到Form1中,再添加一个command1到Form1中五、在Form1中添加如下代码:'----------开始-----------Private Sub Command1_Click()WebBrowser1.Navigate " "End SubPrivate Sub Form_Load()WebBrowser1.Navigate " <A href= ' "/ ' target=_blank> [url][/url] ";End Sub'----------结束-----------六、当然就是测试了,点运行按钮,我们可以看到,我们的webbrowser打开了网络人家的主页,然后再点按钮,我们可爱的webbrowser就把我们带到了模拟之家BBS了。
好了,先写这么多,下次我们看一下怎么用webbrowser提交一个含有用户名和密码的网页。
VB制作简单模拟器教程入门版(二)第二讲如何用VB的webbrowser提交一个含有用户名和密码的网页上次我们知道了怎样打开一个网页,今天我们就来看看怎样迈开赚钱的第一步。
下面我们就开始迈步了:一、先打开VB新建一个工程二、在工具条上点右键选部件(我用的是中文版VB)或者选工程菜单,点部件三、找到Microsoft Internet Controls,在前面打挑,然后确认就可以看到在工具条上多出来一个地球样的图标,我们以后的实现就都围绕着他来进行了。
vb操作excel的常见方法
2.使用对象变量。
如果你发现一个对象引用被多次使用,则你可以将此对象用Set 设置为对象变量,以减少 对对象的访问。如: Workbooks(1).Sheets(1).Range(″A1″).Value = 100 Workbooks(1).Sheets(1).Range(″A2″).Value = 200 则以下代码比上面的要快: Set MySheet = Workbooks(1).Sheets(1) MySheet.Range(″A1″).Value = 100 MySheet.Range(″A使用定时器
如用何过在EExxcceell里97使里用的定加时载器宏 "定时保存" 吗?可惜它的源程序是加密的,现在就上传一篇介绍实 现在它O的ffic文e 档里。有个方法是 application.ontime ,具体函数如下: expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule) 如这果个想函进数一是步用了来解安,排请一参个阅过程Ex在ce将l 的来帮的助特。定时间运行,(可为某个日期的指定时间,也可为 指定的时间段之后)。通过这个函数我们就可以在 Excel 里编写自己的定时程序了。下面就举 两1.在个下例午子来17说:00明:0它0 的。时候显示一个对话框。 Sub Run_it() Application.OnTime TimeValue("17:00:00"), "Show_my_msg" '设置定时器在 17:00:00 激活,激活后运行 Show_my_msg 。 End Sub Sub Show_my_msg() msg = MsgBox("现在是 17:00:00 !", vbInformation, "自定义信息") End Sub 2.模仿 Excel 97 里的 "自动保存宏",在这里定时 5 秒出现一次 Sub auto_open() MsgBox "欢迎你,在这篇文档里,每 5 秒出现一次保存的提示!", vbInformation, "请注意!" Call runtimer '打开文档时自动运行 End Sub Sub runtimer() Application.OnTime Now + TimeValue("00:00:05"), "saveit" ' Now + TimeValue("00:15:00") 指定在当前时间过 5 秒钟开始运行 Saveit 这个过程。 End Sub Sub SaveIt() msg = MsgBox("朋友,你已经工作很久了,现在就存盘吗?" & Chr(13) _ & "选择是:立刻存盘" & Chr(13) _ & "选择否:暂不存盘" & Chr(13) _ & "选择取消:不再出现这个提示", vbYesNoCancel + 64, "休息一会吧!") '提示用户保存当前活动文档。
VB实现类电子表格grid的数据录入
VB实现类电子表格grid的数据录入---- 在编程中经常会遇到应用程序中要输入大量数据的问题,如果能在该程序中实现象电子表格那样的输入界面,就可以解决这个问题。
---- VB 虽提供了Grid 网格控件,但其只具有显示输出功能,要使其能接受输入数据,必须对它加以改造,在计算机报刊中的许多文章都对此进行了探讨,但所用方法都不能令人满意,笔者经过摸索,找出以下办法,供有兴趣者参考。
---- 首先在VB 5.0 环境下Form1 中放上如图1 所示的各控件:Text1;Grid1;Command1;Command2;Vscroll1;Hscroll1。
图1 Form1 及其控件---- 双击Form1 打开Code 窗口,编制程序代码。
Dim inputcolnum, inputrownum As IntegerPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Activate()Text1.SetFocus ' 文本框获得焦点End SubPrivate Sub Form_Load()Grid1.ColWidth(0) = 540Grid1.RowH eight(0) = 216 '单元格的宽和高inputcolnum = 13inputrownum = 15 '表中显示的列、行数Grid1.Cols = 20Grid1.Rows = 20 '表中总的列、行数HScroll1.Height = 300VScroll1.Width = 300 '水平和垂直滚动条的高、宽度Grid1.Height = (inputrownum + 1) '(Grid1.RowHeight(0) + Grid1.GridLineWidth * 12) + 12 + HScroll1.Height'800×600象素时为12;640×480为15Grid1.Width = (inputcolnum + 1) *(Grid1.ColWidth(0) + Grid1.GridLineWidth * 12) + 12 + VScroll1.Width'表的高、宽度HScroll1.Width = Grid1.Width - VScroll1.Width VScroll1.Height = Grid1.Height - HScroll1.Height ' 水平和垂直滚动条的宽、高度HScroll1.Left = Grid1.LeftHScroll1.Top = Grid1.Top + Grid1.Height - HScroll1.Height ' 水平滚动条的位置VScroll1.Left = Grid1.Left + Grid1.Width - VScroll1.Width VScroll1.Top = Grid1.Top' 垂直滚动条的位置HScroll1.Min = 1HScroll1.Max = Grid1.Cols - inputcolnumVScroll1.Min = 1VScroll1.Max = Grid1.Rows - inputrownum' 水平和垂直滚动条的范围Text1.Width = Grid1.ColWidth(0)Text1.Height = Grid1.RowHeight(0)' 文本框的宽、高度Text1.Left = Grid1.Left + Grid1.ColWidth(0)+ Grid1.GridLineWidth * 12Text1.Top = Grid1.Top + Grid1.RowHeight(0)+ Grid1.GridLineWidth * 12' 文本框的位置' 初始化赋值Text1.Visible = TrueFor I = 1 To Grid1.Cols - 1Grid1.Col = IGrid1.Row = 0Grid1.Text = Str(I)Grid1.Col = 0Grid1.Row = IGrid1.Text = Str(I)Next IGrid1.Col = 1Grid1.Row = 1 ' 网格的列、行初始位置Grid1.SelStartCol = 1Grid1.SelStartRow = 1 '网格中单元格的列、行初始位置Grid1.LeftCol = 1Grid1.TopRow = 1 '网格中左上角的列、行初始位置End SubPrivate Sub Grid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Grid1.Col = Grid1.SelStartColGrid1.Row = Grid1.SelStartRowText1.Text = Grid1.Textcolnum = Grid1.Col - Grid1.LeftCol + 1rownum = Grid1.Row - Grid1.TopRow + 1Text1.Left = Grid1.Left + (Grid1.ColWidth(0)+ Grid1.GridLineWidth * 12) * colnumText1.Top = Grid1.Top + (Grid1.RowHeight(0)+ Grid1.GridLineWidth * 12) * rownumEnd SubPrivate Sub Grid1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Text1.SetFocusEnd SubPrivate Sub HScroll1_Change()startcol = Grid1.LeftColGrid1.LeftCol = HScroll1.ValueGrid1.SelStartCol = Grid1.SelStartCol+ Grid1.LeftCol - startcolGrid1.Col = Grid1.SelStartColText1.Text = Grid1.TextEnd SubPrivate Sub Text1_Change()Grid1.Text = Text1.TextEnd SubPrivate Sub Text1_KeyDown(KeyCodeAs Integer, Shift As Integer)Select Case KeyCodeCase 38 ' 光标向上Grid1.Text = Text1.TextIf Grid1.SelStartRow < 2 ThenIf Grid1.TopRow > 1 ThenVScroll1.Value = VScroll1.Value - 1ElseGrid1.SelStartRow = 1End IfElseIf Grid1.TopRow = Grid1.SelStartRow Then VScroll1.Value = VScroll1.Value - 1ElseGrid1.SelStartRow = Grid1.SelStartRow - 1End IfEnd IfGrid1.Col = Grid1.SelStartColGrid1.Row = Grid1.SelStartRowcolnum = Grid1.Col - Grid1.LeftCol + 1rownum = Grid1.Row - Grid1.TopRow + 1Text1.Text = Grid1.TextText1.Left = Grid1.Left + (Grid1.ColWidth(0)+ Grid1.GridLineWidth * 12) * colnumText1.Top = Grid1.Top + (Grid1.RowHeight(0)+ Grid1.GridLineWidth * 12) * rownumExit SubCase 40 ' 光标向下Grid1.Text = Text1.TextIf Grid1.SelStartRow > inputrownum - 1 ThenIf Grid1.TopRow < Grid1.Rows - inputrownum Then VScroll1.Value = VScroll1.Value + 1ElseIf VScroll1.Value = VScroll1.Max AndGrid1.SelStartRow < Grid1.Rows - 1 ThenGrid1.SelStartRow = Grid1.SelStartRow + 1ElseGrid1.SelStartRow = Grid1.Rows - 1End IfEnd IfElseIf Grid1.TopRow = Grid1.SelStartRow - inputrownum Then VScroll1.Value = VScroll1.Value + 1ElseGrid1.SelStartRow = Grid1.SelStartRow + 1End IfEnd IfGrid1.Col = Grid1.SelStartColGrid1.Row = Grid1.SelStartRowcolnum = Grid1.Col - Grid1.LeftCol + 1rownum = Grid1.Row - Grid1.TopRow + 1Text1.Text = Grid1.TextText1.Left = Grid1.Left + (Grid1.ColWidth(0)+ Grid1.GridLineWidth * 12) * colnumText1.Top = Grid1.Top + (Grid1.RowHeight(0)+ Grid1.GridLineWidth * 12) * rownumExit Sub。
VB 利用键盘模拟进行自动录入操作(完整模块代码)
Private Const VK_F5 = &H74
Private Const VK_F6 = &H75
Private Const VK_F7 = &H76
Private Const VK_F8 = &H77
Private Const VK_F9 = &H78
Private Const VK_NUMPAD1 = &H61
Private Const VK_NUMPAD2 = &H62
Private Const VK_NUMPAD3 = &H63
Private Const VK_NUMPAD4 = &H64
Private Const VK_NUMPAD5 = &
'▼插入消息队列。
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const VK_RSHIFT = &HA1
Private Const VK_SCROLL = &H91
Private Const VK_SELECT = &H29
Private Const VK_SEPARATOR = &H6C
Private Const VK_SHIFT = &H10
VB关于webbrowser相关操作大全
23、 页面元素操作------------------------------------------------------------------------------- 15
回Microsoft Word Document
Left 返回或设置WebBrowser控件窗口的内部左边与容器窗口左边的距离
Top 返回或设置WebBrowser控件窗口的内部左边与容器窗口顶边的距离
Width 返回或设置WebBrowser窗口的宽度,以像素为单位
Height 返回或设置WebBrowser窗口的高度,以像素为单位
18、 选择网页上的内容------------------------------------------------------------------------- 12
19、 用IE来下载文件--------------------------------------------------------------------------- 13
2、 提取网页源码----------------------------------------------------------------------------------- 3
3、 防止新窗口里头打开网页--------------------------------------------------------------------- 4
属性 说明
Application 如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser
VB网格中输入数据[推荐5篇]
VB网格中输入数据[推荐5篇]第一篇:VB网格中输入数据VB网格中输入数据VISUAL BASIC提供的网格控制(Grid)主要是用来直观地输出数据,但不能输入数据,使用起来很不方便。
能不能向网格中输入数据呢?笔者提出了两种解决方法,供大家参考:方法一:改写网格的KeyPress事件,在每次有合法字符输入时,把Grid 的Text项和输入字符连接。
这种方法缺点是:一代码较复杂,需要处理各种ASCII字符信息;二是通过编程只能实现很少的编辑功能,如用退格键删除前一字符,用Del键删除所有字符;三是这种方法不能输入汉字,使用起来受到很大的限制。
方法二:利用一文本框作为缓冲,实现编辑功能。
当网格改变行列时,把网格当前行列的内容传递给文本框;当网格中有ASCII字符产生时,把输入焦点设置为文本框,并把输入的ASCII字符送给文本框;当编辑完文本框的内容时,按Enter键或TAB键,把文本框的内容送给网格的当前行列,并把输入焦点设置为网格。
如下程序所示(其中Textl 为文本框,Labell为标签,Gridl为网格):Option ExplicitConst EnterAsc=13Const TabAsc=9Private Sub Form-Load()Labell.Caption=”请输入”End SubPrivate Sub Gridl-KeyPress (KeyAscii As Integer)Text1.StFocusTextl.SelStart=0If KeyAscii<>EnterAsc And KeyAscii<>TabAsc ThenSendKeys Chr(KeyAscii)End IFEnd SubPrivate Sub Gridl-RowColChange()Textl.Text=Grid1.TextEnd SubPrivate Sub Text1-KeyPress (KeyAscii As Integer)If KeyAscii=EnterAsc ThenGrid1.SetFocusKeyAscii=0End IfEnd SubPrivate Sub Text1-LostFocus()Grid1.Text=Text1.TextEnd Sub第二篇:SAS数据输入总结SAS学习总结一、SAS的数据录入(1)直接输入data first;input name $ salary;datalines;a 12b 34c 56d 78;run;注意:datalines的位置以及数据录入后的分号(2)借助infile可读入文本格式为dat、txt、csvA.最简单的形式data first;infile 'c:userslichaodesktopsasdatatoadjump.dat';input Toadname $ Jump1 Jump2 Jump3 Jump4;run;proc print data=work.first;run;B.有空格的情况,需要数一下data second;infile 'c:userslichaodesktopsasdataonionring.dat';input Name $ 1-19 Jump1 22-24 Jump2 25-28 Jump3 30-31 Jump4 33-34 Jump5 37 Jump6 40;run;proc print data=work.second;run;C.格式重复的情况data third;infile 'c:userslichaodesktopsasdataexercise.dat';input Num1 Num2 Num3 @@;run;proc print data=work.third;run;注意:@@的用法D.其他的格式Ⅰ.输出特定的行data icecream;infile 'c:userslichaodesktopsasdataicecreamsales2.dat' firstobs=3 obs=5;input Flavor $ 1-9 Location Boxessold;run;proc print data=icecream;run;注意:firstobs和obs的位置不要改变,而且两者可以单独使用Ⅱ.有缺失值data class;infile 'c:userslichaodesktopsasdataallscores.dat' missover;run;proc print data=class;run;注意:在有缺失值的情况下,如果输出有错误的话就用missover Ⅲ.非正常的输入:data third;infile 'c:userslichaodesktopsasdatapumpkin.dat';input Name $16.num 3.type $2.date $11.(num1 num2 num3 num4 num5)(4.1);run;proc print data=third;run;注意:16.和3.、4.1等的表示方法,都是表示宽度,相比较数列数的方法更有效;输入格式相同的话可以加括号把格式写在后面的括号里。
利用VBA实现表格的自动填写
得 到 学 生 人 数
1.2 判 断教 学工作 手册 Word模版 中所 需要 的表 格 张数
工作 手册 中的一 页表格 只能 填写 24名 学生 情 况 ,利用 mod运算 判 断在 工 作 表 中填 写一 个 班级 的 情 况所需 要 的表格 的张数 。
If studentN u m od 24 < > 0 T hen
关 键 词 :VBA;Word;Excel;数 据 交 互
中 图 分 类 号 :TP311.5 文 献 标 识 码 :A
文 章 编 号 :1007—4260(2010)04—01l9—03
0 引 言
在工 作 中 ,需要 从 教学 管理 部 门提供 的学 生情 况 汇 总表 中遴 选 出所需 要 的学 生 名单 来 制 作 统一 模
工 作 表 中操 作 Word
文 档进 行工 作手 册 的
填 写 ,如 表 2。 利 用
VBA 语 言 , 用 由
Word对 象 模 型 所 提
供 的对 象 的方法 和属
性 来操 作 Word文 档 自动 完成 l2]。
1.1读 取 一 个 班 级 的 学 生 人 数
表 2 空 白的 工 作 手 册
V alue
studentZongshu — studentZongshu + 1
Loop 通过 循环 比较 汇总表 “g”列 中 的班 级名 称 的异 同来 判断一 个班 的人 数
studentZongshu — studentZ0ngshu + 1
studentNu — studentZongshu — studentNu
在 Excel汇 总 表 中 已 经 将 学 生 的 顺 序 按 班 级 排 列 ,
用vb 实现表单的自动提交
i = 0
Set objhtml = doc.body.createtextrange()
If Not IsNull(objhtml) Then
Text1.Text = objhtml.htmltext
【XBM 图片文件】
XBM(X BitMap)一种图形文件格式
文件结构类似如下:
#define counter_width 32 //定义图片宽(象素)
#define counter_height 10 //定义图片高(象素)
… …
<table>
<form name="form1" method="post" action="photo_vote.asp">
<input type="hidden" name="id" value="{525147E1-C4A7-41EE-9190-95800AC81E29}">
通过上面的分析,问题就可以一个一个解决了。
【表单的提交】
表单的提交有几种方式,常用的有两种:一是直接提交含表单提交数据的网址;二是修改原表单,然后提交新数据!
对于第一种,我们在得到验证码后可以这样发送:/news/925/photo_vote.asp?id={525147E1-C4A7-41EE-9190-95800AC81E29}&CheckCode=6793 然而由于摩托罗拉的网站对 Cookies 进行了操作,这样做起来不是很好,而且也难成功,所以我们直能改用第二种方法,修改原有的表单。
datagrid1创建标题vb6.0代码
VB6.0代码编写是一项重要的技能,特别是在数据处理和管理方面。
本文将介绍如何通过VB6.0代码来创建一个数据网格(Datagrid)控件,以便在应用程序中展示和管理数据。
1. 概述在VB6.0中,数据网格控件是一个非常有用的工具,它可以让用户以表格的形式来展示和管理数据。
通过VB6.0代码,我们可以自定义数据网格控件的外观和行为,从而实现更灵活和高效的数据展示和管理。
2. 创建数据网格控件我们需要在VB6.0的窗体上添加数据网格控件。
可以通过在工具箱中选择“Microsoft DataGrid Control”来添加数据网格控件到窗体上。
3. 绑定数据接下来,我们需要将数据绑定到数据网格控件上。
通过VB6.0代码,我们可以使用Recordset对象来获取数据,并将数据绑定到数据网格控件上。
下面是一个简单的示例代码:```Dim conn As New ADODB.ConnectionDim rs As New ADODB.Recordsetconn.ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\mydatabase.mdb"conn.Openrs.Open "SELECT * FROM mytable", connSet DataGrid1.DataSource = rs```在这个示例中,我们使用ADODB.Connection对象来建立数据库连接,然后使用ADODB.Recordset对象来获取数据,并将数据绑定到名为“DataGrid1”的数据网格控件上。
4. 设置数据网格样式通过VB6.0代码,我们可以很方便地设置数据网格控件的样式和外观。
我们可以设置数据网格的列宽、行高、背景颜色、字体样式等。
下面是一个简单的示例代码:```DataGrid1.RowHeight = 300DataGrid1.Columns(1).Width = 1000DataGrid1.BackColor = vbCyanDataGrid1.Font.Bold = True```在这个示例中,我们设置了数据网格的行高为300,第二列的宽度为1000,背景颜色为青色,以及字体为粗体。
VB6.0利用微软网格控件进行编辑输入
用微软网格控件进行编辑输入Visual Basic中提供了许多标准控件和定制控件,每一个控件都可以提供一组特殊的用户界面和编程能力。
充分利用每一个控件的特性和方法,可以使编程工作更加容易、简单。
微软网格控件MSFlexGrid是个定制控件。
使用微软网格控件,可以按行列顺序显示正文、数字和图片,就象电子表格一样。
网格的高度、宽度和其它特性都可以进行调整,而且网格的行和列可以单个地或成组地进行操作。
MSFlexGrid控件对包含在内的单元内容可进行分类、合并以及格式化,并且可以与数据库控件相绑定。
MSFlexGrid控件具有50多种属性,比其它网格控件功能更强大,灵活性更强。
但是MSFlexGrid控件同其它Grid网格控件一样,用户不能编辑网格单元中的内容,在要求对其内容进行修改时,这可能是一个缺陷。
虽然可以对DBGrid控件进行编程完成编辑的功能,但其功能不如MSFlexGrid强大。
当在录入工作量比较大时,如果利用MSFlexGrid进行输入,代替Text或其它控件,从而避免了界面的反复刷新和不断地操作按钮,录入速度和效率会得以大大提高。
在应用程序中使用MSFlexGrid 之前,应先将MSFlxGrd.ocx 文件添加到工程中。
实现编辑网格单元的方案为了仅仅要求实现能够对网格单元进行输入,可以在MSFlexGrid的KeyPress事件中加入以下代码,但是修改编辑输入后的内容还十分困难。
Sub MSFLexGrid1_KeyPress(KeyAscii As Integer)MSFlexGrid1.Text=MSFlexGrid1.Text & Chr$(KeyAscii)End Sub另外一种方法是文本框和网格相结合,用户编辑操作文本框中的内容,操作完后移至网格单元中。
在这个过程中,应该实现以下几个功能:(1)文本框能准确定位,与待编辑网格单元相重合(2)平时文本框不显示,当进行编辑操作时显示(3)在输入完一行后能自动判断并加一新行(4)按回车键确认并自动到下一列(5)双击网格单元可显示文本框进行编辑(6)文本框消失后,把文本框内容移到网格单元中。
study139comvb网页功能操作
Public Function HtmlStr$(URL$) '提取网页源码函数Dim XmlHttpSet XmlHttp = CreateObject("Microsoft.XMLHTTP")XmlHttp.Open "GET", URL, FalseXmlHttp.SendIf XmlHttp.ReadyState = 4 Then HtmlStr = StrConv(XmlHttp.Responsebody, vbUnicode) End Function2.函数调用:Dim strweb1 As Stringstrweb1=HtmlStr("")二、获取WebBrowser控件中网页源代码1.函数代码:Public Function WebDaima(WebBrowser, BuFen) '获取WebBrowser控件中网页源代码Select Case BuFenCase "Body" '只获取<body>与</body>之间的代码WebDaima = WebBrowser.Document.body.innerhtmlCase "All" '获取整个网页源代码WebDaima = WebBrowser.Document.documentelement.outerhtmlCase ElseWebDaima = WebBrowser.Document.documentelement.outerhtmlEnd SelectEnd Function2.调用Dim strweb As Stringstrweb=WebDaima(frmIndex.WebBrowser1,"All") '获取整个网页源代码strweb=WebDaima(frmIndex.WebBrowser1,"Body") '只获取body中源代码三、提取字符串或网页源代码中指定的资源(可利用这一函数做文章采集器)1.函数代码:Public Function FindStrMulti$(Strall$, FirstStr$, EndStr$, SplitStr$) '提取字符串或网页源代码中所有指定代码'参数'总文本,起始字符串,终止字符串,分隔符Dim i&, j&j = 1Doi = InStr(j, Strall, FirstStr)If i = 0 ThenExit DoEnd Ifi = i + Len(FirstStr)j = InStr(i, Strall, EndStr)If j > 0 ThenFindStrMulti = IIf(Len(FindStrMulti) > 0, FindStrMulti & SplitStr, "") & Mid(Strall, i, j - i)ElseExit DoEnd IfLoopEnd Function2.函数调用截取字符串中的内容Dim str1 As StringDim str2 As Stringstr1 = "<table><tr><td>要截取的内容</td></tr></table>"str2 = FindStrMulti(str1, "<td>", "</td>", "")MsgBox str2'此时str2的值就为要截取的内容文章列表标题链接采集实例网页代码<DIV id=content><SPAN class=navbar><STRONG><A href="/blog/">博客首页</A> > 文章列表</STRONG></SPAN><TABLE class=content_table width="100%"><TBODY><TR><TD><H1>比目鱼博客文章列表</H1><P><UL><LI><SPAN class=list-category>[文坛张望]</SPAN> <A class=list-titlehref="/blog/archives/119491210.shtml"><STRONG>谁会拿下2010年的诺贝尔文学奖?</STRONG></A> <SPAN class=list-date>(2010-10-01 22:38)</SPAN></LI><LI><SPAN class=list-category>[视觉训练]</SPAN> <A class=list-titlehref="/blog/archives/119247165.shtml"><STRONG>书法练习二幅</STRONG></A> <SPANclass=list-date>(2010-09-29 01:51)</SPAN> </LI><LI><SPAN class=list-category>[文坛张望]</SPAN> <A class=list-titlehref="/blog/archives/118604217.shtml"><STRONG>骆以军对话董启章</STRONG></A> <SPANclass=list-date>(2010-09-21 17:15)</SPAN> </LI><LI><SPAN class=list-category>[视觉训练]</SPAN> <A class=list-titlehref="/blog/archives/118206492.shtml"><STRONG>夜临古画(六)</STRONG></A><SPANclass=list-date>(2010-09-17 01:46)</SPAN> </LI><LI><SPAN class=list-category>[我也读书]</SPAN> <A class=list-titlehref="/blog/archives/117345094.shtml"><STRONG>Jennifer Egan 的《A Visit From the Goon Squad》</STRONG></A> <SPAN class=list-date>(2010-09-07 02:30)</SPAN> </LI><LI><SPAN class=list-category>[我也读书]</SPAN> <A class=list-titlehref="/blog/archives/116446375.shtml"><STRONG>当我们谈论电子书的时候我们在谈论电子书阅读器</STRONG></A> <SPAN class=list-date>(2010-08-27 16:51)</SPAN> </LI><LI><SPAN class=list-category>[IT互联网]</SPAN> <A class=list-titlehref="/blog/archives/116133972.shtml"><S TRONG>“读写人”和“比目鱼”网站的手机版</STRONG></A> <SPAN class=list-date>(2010-08-24 02:04)</SPAN> </LI></UL><P></P><P align=center><P align=center><STRONG>1 <A href="/blog/list_all_2.shtml">2</A> <Ahref="/blog/list_all_3.shtml">3</A> <A href="/blog/list_all_4.shtml">4</A> <Ahref="/blog/list_all_5.shtml">5</A> <A href="/blog/list_all_6.shtml">6</A> <Ahref="/blog/list_all_7.shtml">7</A> <A href="/blog/list_all_8.shtml">8</A> <Ahref="/blog/list_all_2.shtml">>></A> </STRONG></P><P></P></TD></TR></TBODY></TABLE><P> </P></DIV><!-- END CONTENT --><!-- BEGIN SITEBAR --><DIV id=sidebar><P>从以上代码中获取<ul>与</ul>之间所有文章的标题链接,实现方法如下:Dim strWeb As StringDim i As IntegerDim strListArea As StringDim strLink '定义存放列表文章链接的数组strWeb = WebDaima(Me.WebBrowser1, "Body") '获取网页body代码(具体查看WebDaima函数) strListArea = FindStrMulti(strWeb, "<H1>比目鱼博客文章列表</H1>", "</UL>", "") '截列表区域代码'获取列表区域中文章链接,并存在在数组strLink中strLink = Split(FindStrMulti(strListArea, "href=" & Chr(34), Chr(34) & "><STRONG>", vbCrLf), vbCrLf) For i = 0 To UBound(strLink) '循环输出链接Text1.Text = Text1.Text & strLink(i) & vbCrLfNext i四、中文汉字转化为URL编码函数代码:'以下两个函数用于将文字转化为UTF8或GBK编码:(如在百度中搜索内容时,百度先将搜索词转化为UTF8的编码,再传送给服务器)'调用:'KeyWordUtf = UTF8EncodeURI(KeyWord) 或KeyWordUtf = GBKEncodeURI(KeyWord)Public Function UTF8EncodeURI(szInput)Dim wch, uch, szRetDim XDim nAsc, nAsc2, nAsc3If szInput = "" ThenUTF8EncodeURI = szInputExit FunctionEnd IfFor X = 1 To Len(szInput)wch = Mid(szInput, X, 1)nAsc = AscW(wch)If nAsc < 0 Then nAsc = nAsc + 65536If (nAsc And &HFF80) = 0 ThenszRet = szRet & wchElseIf (nAsc And &HF000) = 0 Thenuch = "%" & Hex(((nAsc \ 2 ^ 6)) Or &HC0) & Hex(nAsc And &H3F Or &H80) szRet = szRet & uchElseuch = "%" & Hex((nAsc \ 2 ^ 12) Or &HE0) & "%" & _Hex((nAsc \ 2 ^ 6) And &H3F Or &H80) & "%" & _Hex(nAsc And &H3F Or &H80)szRet = szRet & uchEnd IfEnd IfNextUTF8EncodeURI = szRetEnd FunctionPublic Function GBKEncodeURI(szInput)Dim i As LongDim X() As ByteDim szRet As StringszRet = ""X = StrConv(szInput, vbFromUnicode)For i = LBound(X) To UBound(X)szRet = szRet & "%" & Hex(X(i))NextGBKEncodeURI = szRetEnd Function函数调用:MsgBox UTF8EncodeURI("中文汉字")MsgBox GBKEncodeURI("中文汉字")五、获取网页中的验证码函数代码:Public Function GetImg(WebBrowser, Img, sxz)'参数'WebBrowser:等获取验证码网页所在的WebBrowser控件'Img:显示验证码的Image控件'sxz:网页中验证码相应属性的属性值Dim CtrlRange, xFor Each x In WebBrowser.Document.AllIf UCase(x.tagName) = "IMG" Then'x.src为验证码图片的属性,也可是其他属性如x.onload等If InStr(x.src,sxz) > 0 ThenSet CtrlRange = WebBrowser.Document.body.createControlRange()CtrlRange.Add (x)CtrlRange.execCommand ("Copy")Debug.Print "Copy"Img.Picture = Clipboard.GetDataEnd IfEnd IfNextEnd Function函数调用:'如获取网页/login.aspx中的验证码图片代码如下:'<IMG id=valiCode style="CURSOR: pointer" alt=验证码src="/VerifyCode_Login.aspx" border=0> '获取验证码函数调用如下:Call GetImg(Form1.WebBrowser1, Form1.Image1, "VerifyCode_Login.aspx")六、WebBrowser控件中网页按钮的点击'<BUTTON id="WordSearchBtn" class="btn">查询</button>'此按钮的点击方法WebBrowser1.Document.getelementsbytagname("BUTTON")("WordSearchBtn").Click七、WebBrowser控件中网页文本框的赋值'文本框代码:<input id="WordInput" maxlength="40" type="text" />WebBrowser1.Document.getelementsbytagname("input")("WordInput").Value = "要在文本框输入的文字" '此处WordInput为文本框的ID或Name属性值八、WebBrowser控件中网页列表/菜单表单选项的选取函数代码Public Function SelectXq(WebBrowser, SelectName, SelectValue)'参数'WebBrowser:WebBrowser控件名称'SelectName:网页中列表/菜单表单名称或ID值'SelectValue:选中值WebBrowser.doc.All.Item(SelectName).Value = SelectValueEnd Function函数调用方法:WebBrowser中网页Select表单代码如下:<SELECT id=ctl00_ContentPlaceHolder1_DropDownList1name=ctl00$ContentPlaceHolder1$DropDownList1> <OPTION value=我就读的第一所学校的名称?selected>我就读的第一所学校的名称?</OPTION> <OPTION value=我最喜欢的休闲运动是什么?>我最喜欢的休闲运动是什么?</OPTION> <OPTION value=我最喜欢的运动员是谁?>我最喜欢的运动员是谁?</OPTION> <OPTION value=我最喜欢的物品的名称?>我最喜欢的物品的名称?</OPTION><OPTION value=我最喜欢的歌曲?>我最喜欢的歌曲?</OPTION> <OPTION value=我最喜欢的食物?>我最喜欢的食物?</OPTION> <OPTION value=我最爱的人的名字?>我最爱的人的名字?</OPTION> <OPTION value=我最爱的电影?>我最爱的电影?</OPTION> <OPTION value=我妈妈的生日?>我妈妈的生日?</OPTION></SELECT>'让列表表单选中选项值为我最爱的人的名字的选项Call SelectXq(Form1.WebBrowser1, "ctl00_ContentPlaceHolder1_DropDownList1", "我最爱的人的名字?")八、自动填写注册表单并提交网页表单代码<form method="POST" action="result.asp"><p>请填写下面表单注册(*项为必添项)</p><p>*姓名<input type="text" name="Name" size="20"></p><p>*男<input type="radio" value="V1" name="R1"></p><p>*女<input type="radio" value="V1" name="R2"></p><p>*昵称<input type="text" name="NickName" size="20"></p><p>*兴趣爱好<select name="aihao"><option value="计算机">计算机</option><option value="游戏">游戏</option><option value="逛街">逛街</option></select></p><p>电子邮件<input type="text" name="EMail" size="20"></p><p>*密码<input type="password" name="Password" size="20"></p><p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重写" name="B2"></p></form>填写表单并提交操作代码Private Sub Form_Load()WebBrowser1.Navigate2 App.Path & "\test.htm"End SubPrivate Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)Dim vDoc, vTagDim i As IntegerSet vDoc = WebBrowser1.DocumentList1.ClearFor i = 0 To vDoc.All.length - 1If UCase(vDoc.All(i).tagName) = "INPUT" Or UCase(vDoc.All(i).tagName) = "SELECT" ThenSet vTag = vDoc.All(i)If vTag.Type = "text" Or vTag.Type = "password" Or vTag.Type = "radio" Or = "aihao" ThenList1.AddItem Select Case Case "Name"vTag.Value = "IMGod"Case "R2"vTag.Checked = TrueCase "NickName"vTag.Value = "IMGod"Case "aihao"vTag.Value = "逛街"Case "Password"vTag.Value = "IMGodpass"Case "EMail"vTag.Value = "IMGod@"End SelectElseIf vTag.Type = "submit" ThenvTag.ClickEnd IfEnd IfNext iEnd Sub九、限制WebBrowser控件中网页的所有链接在同一个窗口打开Private Sub Form_Load()WebBrowser1.Navigate ("/tool")End SubPrivate Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Cancel = TrueWebBrowser1.Navigate WebBrowser1.Document.activeelement.hrefEnd Sub十、控件WebBrowser控件中网页弹窗或新窗口打开的链接在另一个WebBrowser控件中打开Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Set ppDisp = WebPageAd.ObjectEnd Sub十一、禁止WebBrowser控件中网页弹窗Private Sub WebBrowser1_NewWindow2(ppDisp As Object, Cancel As Boolean)Cancel = TrueEnd Sub窗体透明控件不透明Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _ByVal hwnd As Long, _ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _ByVal hwnd As Long, _ByVal nIndex As Long, _ByVal dwNewLong As Long) As LongPrivate Declare Function SetLayeredWindowAttributes Lib "user32" ( _ByVal hwnd As Long, _ByVal crKey As Long, _ByVal bAlpha As Byte, _ByVal dwFlags As Long) As LongPrivate Const GWL_STYLE = (-16)Private Const GWL_EXSTYLE = (-20)Private Const WS_EX_LAYERED = &H80000Private Const LWA_COLORKEY = &H1Private Const LWA_ALPHA = &H2Private Sub Form_Load()Me.BackColor = vbCyanSetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) OrWS_EX_LAYEREDSetLayeredWindowAttributes Me.hwnd, vbCyan, 0&, LWA_COLORKEYEnd Sub图标提取Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As LongPrivate Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As LongPrivate Sub Command1_Click()Dim a As Longa = ExtractIcon(App.hInstance, "D:\Program Files\QQ2007\QQ.exe", 0)a = DrawIcon(Picture1.hdc, 0, 0, a)End Sub这个可以显示在Picture1。
利用VBA实现网页中自动录入成绩
2010年8月第16卷第3期安庆师范学院学报(自然科学版)J o ur nal of A nqi ng T each er s C ol lege(N at u r al Sci ence Edi ti on)A ug.2010V O I.16N O.3利用V B A实现网页中自动录入成绩江治1,2(1.华东师范大学信息科学技术学院,上海200241;2.温州大学物理与电子信息工程学院,浙江温州325035)擅要:V B A是O f fi c e系列软件内嵌的通用编程语言,用于定制和扩展O f fi c e的功能。
本文利用E xc el中的V B A 进行二次开发编程,实现了将保存在E xce l文件中的成绩自动录入到信息管理系统登记成绩的页面的功能,并给出了详细的实现过程。
该程序操作简便。
自动录入迅速,解决了教师手工输入速度慢且容易出错的问题,具有一定的实用价值。
关键词:V BA;O LE;自动录入中图分类号:T P311文献标识码:A文章编号:1007—4260(2010)03--0124--040引言21世纪是个高度信息化的社会,信息化已经渗透到高校教学、科研、管理的各个方面。
各高校在不同程度上都采用了现代化的信息管理技术,各项资料除必需的纸质材料外,均采用电子化管理。
网上选课、成绩查询等系统,在各高校已普及,这些系统在提高了办事效率,方便学生选课、查询成绩的同时,也给任课教师带来一些不便。
如对于查询成绩系统,教师必须通过录入页面,将学生各门课成绩从已打好的电子版成绩中手工逐个输人到信息管理系统。
对于学生人数较多的教师,这是一项非常繁琐而容易出错的重复工作。
目前大多数电子版成绩都是使用E xce l来保存,本文就以Exc el V B A为例,介绍如何编程实现将Exce l现有数据自动录入到信息管理系统的成绩登记页面。
1设计语言V B A简介V B A(V i s ual B asi c f or A ppl i ca t i on)是微软公司开发出来的一种通用的O f f i ce自动化语言,它嵌入在O f f i ce各个套件中,用于定制和扩展O f f i c e的功能,可以大大提高O f f i c e的功用。
网页自动填表基础教程从简单开始
⽹页⾃动填表基础教程从简单开始通常来说,⽹页⾃动填表包含单选框、复选框、⽂本框、多⾏⽂本框、下拉列表框的⾃动填写。
本⽂讲讲这些项⽬的⾃动填写⽅法。
所⽤到的⼯具是⽹页⾃动操作通⽤⼯具。
⼀、⽂本输⼊框及多⾏⽂本输⼊框的⾃动填写下⾯来说说⽹页需要填表的情况,⽐如注册页⾯呀,论坛页⾯呀等等。
需要填写每项内容,如何实现⽂本输⼊框和多⾏⽂本输⼊框的⾃动填写呢。
我们请出⽹页⾃动操作通⽤⼯具。
然后看看需要⾃动填写的页⾯。
需要在姓名和内容框实现⾃动填写。
1.设置姓名框⾃动填写王维。
第⼀步:打开⽹页⾃动操作通⽤⼯具,在⽹页⾃动提交监控操作界⾯,点击"添加",在"⽹址"栏输⼊需要⾃动填表的⽹址,点击"⾃动获取",然后"确定"。
第⼆步:在"提交内容"选项,点击"添加","元素别名"命名为姓名,"获取元素⽅式"选择"通过html元素属性获取",点击"⾃动获取"。
把⿏标移动到姓名框,右键选择获取元素,点击"添加元素"。
"填写属性"写value,"填写内容"写“王维”,点击"确定"按钮。
以上设置就完成了姓名框⾃动输⼊王维的设置。
2.设置在多⾏⽂本框⾃动填写“⼤学⽣的希望是什么?好好学习,天天向上,独⽴创新。
”第⼀步:点击"添加","元素别名"命名为内容,"获取元素⽅式"选择"通过html元素属性获取",点击"⾃动获取"。
把⿏标移动到内容框,右键选择获取元素,点击"添加元素"。
第⼆步:"填写属性"写text,填写内容写“⼤学⽣的希望是什么?好好学习,天天向上,独⽴创新。
VB网格中输入数据
VB网格中输入数据VISUAL BASIC提供的网格控制(Grid)主要是用来直观地输出数据,但不能输入数据,使用起来很不方便。
能不能向网格中输入数据呢?笔者提出了两种解决方法,供大家参考:方法一:改写网格的KeyPress事件,在每次有合法字符输入时,把Grid的Text项和输入字符连接。
这种方法缺点是:一代码较复杂,需要处理各种ASCII字符信息;二是通过编程只能实现很少的编辑功能,如用退格键删除前一字符,用Del键删除所有字符;三是这种方法不能输入汉字,使用起来受到很大的限制。
方法二:利用一文本框作为缓冲,实现编辑功能。
当网格改变行列时,把网格当前行列的内容传递给文本框;当网格中有ASCII字符产生时,把输入焦点设置为文本框,并把输入的ASCII字符送给文本框;当编辑完文本框的内容时,按Enter键或TAB键,把文本框的内容送给网格的当前行列,并把输入焦点设置为网格。
如下程序所示(其中Textl为文本框,Labell为标签,Gridl为网格):Option ExplicitConst EnterAsc=13Const TabAsc=9Private Sub Form-Load()Labell.Caption=”请输入”End SubPrivate Sub Gridl-KeyPress(KeyAscii As Integer)Text1.StFocusTextl.SelStart=0If KeyAscii<>EnterAsc And KeyAscii<>TabAsc ThenSendKeys Chr(KeyAscii)End IFEnd SubPrivate Sub Gridl-RowColChange()Textl.Text=Grid1.TextEnd SubPrivate Sub Text1-KeyPress(KeyAscii As Integer)If KeyAscii=EnterAsc ThenGrid1.SetFocusKeyAscii=0End IfEnd SubPrivate Sub Text1-LostFocus()Grid1.Text=Text1.TextEnd Sub。
Vb(VBA)网页数据下载与控制
网页数据下载与控制一、概述及感谢需要用到网页控制的方面,大致概括一下为:1、程序中需要嵌入一个网页,例如:天气预报。
2、需要从网上下载数据,写入到本地数据库中。
二、Maxthon的使用无论哪方面的应用,首要的是找到网址(也许是废话)。
以Winland的天气预报为例,假如我的程序需要这样一个东西,我该如何下爪:1、打开2、点击“天气预报”,打开:/tianqi3、查一个城市试试,此时结果找到了,但网址没变。
4、点击Maxthon的viewpage。
5、在“框架”中,发现一个“内嵌框架”,点击打开。
发现原来天气预报的网址为:/WeatherInfoIfm.aspx?CityName=%e5%ae%9c%e6%98%8c6、下一步,在我们自己的程序中就可以使用这个网址,直接来查询了。
综上所述,通过Maxthon,我们可以很方便地找到我们所需要的真正的网址。
在viewpage中还有一个“表单”,里面很清楚地显示了Name,method,以及Action。
我理解这个Action 就是“结果网页”的网址的后半部分(不知对不对?)。
(在网页的表单里面Action是目标地址,就是处理这些递交内容的服务器端脚本。
如果Action为空的话,就是当前文件。
)三、网页关键字(录入、按钮、数据)解读<% 和 %> ASP脚本片断的开始和结束。
在<%和%>标签之间的脚本代码,在主页传递给用户浏览器之前会在服务器上执行。
<HTML> 和 </HTML> <HTML>标示网页的开头,</HTML>标示网页的结束。
<BODY> 和 </BODY> 网页上的文本应该放置在这些标示之间<TABLE> 和 </TABLE> 表格的开始和结束<TABLE Border = “1”> 表格边框参数明确表格边框的宽度<TH> 和 </TH> 放置表格标题于这些标示之间<TR> 和 </TR> 标示<TR>在表格里开始一新行。
VB表格控件
表格控件(celltext.ocx)
Visual Basic (VB6.0)自制“表格控件”,可以进行数据编辑、输入/输出,批量计算处理。
该表格控件有如下功能(集成在右键弹出菜单中),其操作与Excel基本相似,也能进行公式计算及字符处理;表格数据可以导出,需要时再导入继续使用。
1、通过粘贴、复制可以与Excel交互进行数据复制/粘贴,且支持不同格式数据复制输入。
(a) Excel表格(b) 表格控件
(a) 记事本不同格式数据(b) 表格控件复制数据
2、公式计算,如在单元格(1, 1)处输入公式便能显示计算结果,并记忆该公式。
3、字符串处理,如在单元格(1,2)处输入下面公式便能对C1列整体处理,计算亦同。
4、支持鼠标中键滚轮的滚动操作(VB不直接支持滚轮操作)。
5、提供操作表格单元数据的接口函数,可以编程对单元格进行赋值或读取,操作简便。
6、支持的函数有:除了支持VB自带的数学函数外,还支持其导出的数学函数,可直接调用,如双曲正弦函数Sinh(),Cotan()等。
小结:
由于VB内部表格控件有太多限制,不能直接编辑,不能直接进行数据的复制、粘贴,也不支持鼠标滚轮的滚动操作,非常不方便。
该控件解决了这些问题,并增加了一些非常实用的功能;经过长时间的调试和使用,运行良好。
该表格控件操作非常简单,与Excel表格的操作几乎没有区别,功能实用且可以再扩展,并且支持多种格式的数据输入,对于有重复数据交互操作的朋友来说,使用该控件可以节约大量的时间。
详情可联系:celltext@(源QQ被盗)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB自动填写网页表格的程序
VB自动填写网页表格的程序
--flyli
大家可能学VB都很久了不过却是没用VB干出什么有用的事情,今天我就来讲下如何用VB自动填写网页的表格
我们的试验网页就是/login.php
打开它你就知道它长什么样子了,然后我们查看下网页的源代码(方法:菜单-》查看-》源代码)
我们可以在其中找到这么一段
复制内容到剪贴板代码:
<input class="fm fm110" type="text" name="ee852ab" value="" maxlength="15"> <span class="e f7"></span>
</td></tr>
<tr><td><label>密码:</label>
<input class="fm fm110" type="password" name="ec3cfe6" value="" maxlength="20"> <span class="e f7"></span>
其中value的值也就是那两个输入框的值
我们还可以找到这么一段
复制内容到剪贴板代码:
<input type="image" value="login" border="0" name="s1" src="img/cn/b/l1.gif" width="80" height="20" ></input>
这个就是那个确定按钮的代码了
不懂html,不知道如何找到这些代码?这个就需要借助与Dreamweaver的可视化功能了,用它分析网页也挺方便的
然后就是VB了~
用VB添加个webbrowser控键进来尽量把它在窗体上画大点~,(不知道如何找到这个控键?那就得借助baidu了,我不可能面面具到哦~)
我们把webbrowser控键得name属性改为IE,当然也可以是你自己喜欢得哈,不过要和下面得程序配套
然后就是最关键得填表了
复制内容到剪贴板代码:
Private Sub Form_Load()
'初始化时打开该网页
IE.navigate "/login.php"
End Sub
找个2个command控键,分别为command1和command2控键,将其caption改为“输入”和“确定”
复制内容到剪贴板代码:
Private Sub command1_Click()
Dim vDoc, vTag
Dim i As Integer
Set vDoc = IE.document
For i = 0 To vDoc.All.length - 1 '检测所有标签
If UCase(vDoc.All(i).tagName) = "INPUT" Then '找到input标签
Set vTag = vDoc.All(i)
If vTag.Type = "text" Then
vTag.Value = "123456" '这个是输入到用户名中得值
End If
If vTag.Type = "password" Then
vTag.Value = "111222333"'这个是输入到密码框中的值
End If
If = "s1" Then
vTag.Click
End If
endif
next i
End sub
Private Sub command2_Click()
Dim vDoc, vTag
Dim i As Integer
Set vDoc = IE.document
For i = 0 To vDoc.All.length - 1 '检测所有标签
If UCase(vDoc.All(i).tagName) = "INPUT" Then '找到input标签
Set vTag = vDoc.All(i)
If = "s1" Then
vTag.Click'点击确定键
End If
endif
next i
End sub
然后运行程序,发现点击程序中的“输入”按钮后,需要输入的值会被自动填写到输入框中
点击程序中的“确定”按钮,相当于点击网页中的确定按钮的效果一样~
以上就是自动填表的基本原理了,但是对于某些加了验证图片的就要麻烦点了,要判断验证图片代表的字母,不过不在本文的讨论范围内哈~只要把上面的理解透彻了,那么给travian作个外挂就只是时间问题了,呵呵
呵呵,就写到这里了,晚了,再去游戏会~。