Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 20644|回复: 41

[问题] 带你入门VBA---不懂的代码快点贴过来

[复制链接]
发表于 2006-6-21 13:03 | 显示全部楼层 |阅读模式
在学习VBA的过程中,最大的障碍之一就是理解代码和一串串陌生的单词和语句。为了方便会员学习,所以才专门开辟此贴。<font color="#415ecf">当你在看到书上或他人编写的代码不明白时,就贴到本贴中</font>。在这里会尽量会让你得到满意的解释。<br/>注:<br/>1、可以贴<font color="#4765db">生词</font>,也可以贴<font color="#3979d8">整句的代码</font>。 <br/>2、<font color="#c06750">此贴专为VBA新手开辟</font>。请不要贴海量的代码。尽量何持在<font color="#c4573c"><font size="3">10</font></font>句之内。<br/>3、因为这是一个学习贴,所以尽量<font color="#cc6d56"><font size="3">不要贴解决问题的贴</font></font>,可以另外单独发贴提问。<br/><br/>希望有更多的新手提问,有更多的高手参与回答。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2006-6-21 13:03 | 显示全部楼层

<p>WebBrowser1.Document.writeln "&lt;HTML&gt;"</p><p>是什么意思?</p>WebBrowser :是WEB浏览器控件 <p>Split(ActiveCell.EntireColumn.Address(, False), ":")</p><p>中间的(,false)是代表什么?</p>注:ADDRESS用法: ADDRESS(<font color="#3333cc">行是否绝对引用</font>,<font color="#b86c59">列是否绝对引用</font>),如果值为TRUE则为绝对引用,为FALSE则为相对引用
回复

使用道具 举报

 楼主| 发表于 2006-6-21 13:03 | 显示全部楼层

<p>我的一个问题,如何复制过去的数字不带格式.比如:</p><p>rivate Sub CommandButton1_Click()<br/>h = Sheets("sheet2").Range("A65536").End(xlUp).Row + 1<br/>Range("d1:f2").Copy Worksheets("sheet2").Range("A" &amp; h)<br/>End Sub</p><p>d1:f2我设有公式,但复到2表以后,公式也一同过去了,我不想公式复制过去,应该使用什么样的属性.</p><font color="#51b738">..........................以下为解释............................................</font> Range("d1:f2").Copy Worksheets("sheet2").Range("A" &amp; h) 可以改为 Worksheets("sheet2").Range("A" &amp; h)<font color="#c06750">=</font>Range("d1:f2")<font color="#c86249">.VALUE</font> 用<font color="#c4573c">等号赋值</font>的方法也可以达到复制的效果
回复

使用道具 举报

 楼主| 发表于 2006-6-21 13:04 | 显示全部楼层

<p>ublic Sub Display() Dim start As Single <font color="#2248dd">'定义单精度浮点型变量</font> Dim NI As Single ' start = Timer <font color="#3352cc">'从午夜开始到现在经过的秒数。</font> NI = Me.Interval / 1000 '<font color="#4949c8">时间类的每一秒变化给变量NI赋值</font> Do <font color="#2043ce">'做Do循环</font> If Timer &gt; start + NI Then <font color="#4141cf">'如果从午夜开始到现在经过的秒数大于前面的satart+NI的值的判断。</font> DoEvents <font color="#4141cf">'交出系统控制权</font> RaiseEvent Timer <font color="#2248dd">'重新引发系统计算从午夜开始到现在经过的秒数</font> If Not Me.Enabled Then Exit Sub '<font color="#4e4ed3">如果类的实例不可见,则退出本显示过程</font> NI = NI + Me.Interval / 1000 <font color="#3352cc">'继续对NI赋值</font> End If Loop End Sub</p><p>是什么意思?</p>
回复

使用道具 举报

 楼主| 发表于 2006-6-21 13:04 | 显示全部楼层

终于找到一位好老师了。请教兰老师如下代码的注释。<br/>ActiveWorkbook.Names.Add Name:="Mcl", RefersToR1C1:="=Sheet1!R1C1:R" &amp; i &amp; "C1" <font color="#3333cc">'定义名称Mcl 的区域为Sheet1!R1C1:R" &amp; i &amp; "C1" </font><br/>With Sheet1.Range("A1:A" &amp; i) <font color="#4949c8">'用WITH语句,好处在处在后面使用到WITH后的对象时可以用"."代替</font><br/>Set Tem = .Find(Target, LookIn:=xlValues) <font color="#2828c7">'在Sheet1.Range("A1:A" &amp; i) 区域中查找单元内容为Target单元格内容的值.(这段程序应是从事件程序中摘出的吧)</font><br/>If Not Tem Is Nothing Then <font color="#5233cc">'如果没找到符合条件的单元格</font><br/>End With
回复

使用道具 举报

 楼主| 发表于 2006-6-21 13:04 | 显示全部楼层

IsNull是什么意思‘<br/><font color="#6cb859">************************以下为解释内容****************</font><br/>IsNull<font color="#3959d8">指出表达式是否不包含任何有效数据</font><br/><br/>IsNull 函数示例<br/>本示例使用 IsNull 函数检查变量值是否为 Null。<br/>Dim MyVar, MyCheck<br/>MyCheck = IsNull(MyVar) <font color="#2b4dd5">' 返回 False。</font><br/><br/>MyVar = ""<br/>MyCheck = IsNull(MyVar) <font color="#2b4dd5">' 返回 False。</font><br/><br/>MyVar = Null<br/>MyCheck = IsNull(MyVar) <font color="#3352cc">' 返回 True。</font>
回复

使用道具 举报

 楼主| 发表于 2006-6-21 13:05 | 显示全部楼层

r1=range("b1").end(xldown).row<br/>set rng=range("h1:h"&amp; r1)<br/>这里什磨区域 <font color="#57c43c">************说明***************************</font> r1=range("b1").end(xldown).row:‘<font color="#3333cc">是B列最后一个空单元格(数据区域中不含空行)</font> Range("<font color="#4828c7">区域左上角单元格</font>,<font color="#cc3333">区域右下角单元格</font>") 来表示<font color="#417acf">一个连续的区域</font>。 range("h1:h"&amp; r1)中把右下角的<font color="#c06750">单元格行数</font>作为一个变量。range("h1:h"&amp; r1)即表增B列现有的数据区域。且随着<font color="#cc5656">B列数据的添加而自动扩展</font>。
回复

使用道具 举报

 楼主| 发表于 2006-6-21 13:05 | 显示全部楼层

Sub Lbx_更改()<br/>Dim rg As Range, arr$()'<font color="#323289"><b>'定义一个Range对象变量和一个动态数组</b></font> <br/>Set rg = ActiveCell'<font color="#323289"><b>设置对象为活动单元格</b></font> <br/>If Application.Intersect(rg, Range("C6:C9")) Is Nothing Then Exit Sub'<font color="#323289"> <b>如果活动单元格不在范围中则退出过程 </b></font> <br/>ActiveSheet.Shapes("Lbx").Select'<font color="#323289"><b>选中图形,根据以下判断应该是ListBox</b></font><br/>arr = Split(Range(Selection.ListFillRange).Cells(Selection.Value), "_")'<font color="#323289"><b>将列表框中列表范围中列表框的值所指向的单元格内容以"_"为分隔符取得一个数组赋值给arr </b></font> <br/>rg.Resize(1, 4).ClearContents'<font color="#323289"><b>清空从活动单元格开始向右的四个单元格内容</b></font><br/>rg.Resize(1, UBound(arr) + 1) = arr'<font color="#323289"><b>用数组给范围赋值</b></font> <br/>rg.Select'<font color="#323289"><b>]选中活动单元格</b></font><br/>End Sub
回复

使用道具 举报

 楼主| 发表于 2006-6-21 13:07 | 显示全部楼层

CSTR()是什么意思<br/><font color="#3939d8">以下引自帮肋文件:</font><br/>CStr 返回值 <br/>如果 expression 是CStr 返回<br/>Boolean 含有 True或 False 的字符串<br/>Date 含有系统中短日期格式日期的字符串<br/>Null 一个运行时错误<br/>Empty 一个零长度字符串 ("")<br/>Error 包含单词 Error 以及错误号的字符串<br/>其他数值 含有数值的字符串
回复

使用道具 举报

 楼主| 发表于 2006-6-21 13:07 | 显示全部楼层

请问红色文字是什么意思?<br/>rivate Sub UserForm_Activate()<br/>Dim rng As Range<br/>Dim i As Integer<br/>With ListView1<br/>.Gridlines = True '显示表格线<br/>LabelEdit = lvwManual <font color="#5c5cd6">'LabelEdit的值确定是否可以编辑在 ListView 控件中的 ListItem 对象的标签。当为lvwManual 时手动的。BeforeLabelEdit 事件只发生在调用 StartLabelEdit 方法时。</font> <br/>.FullRowSelect = True '<font color="#4141cf">可以整行选取</font><br/>.GetFirstVisible <font color="#4e69d3">'ListView 控件可包含的 ListItem 对象数目比在其内部区域中可视的 ListItem 对象数目多。可以使用由 GetFirstVisible 方法返回的引用决定在列表或在报表视图中的第一个可视的 ListItem 对象。</font><br/>.FlatScrollBar = True <font color="#4e4ed3">'设置滚动条的外观</font><br/>.FullRowSelect = True <br/>.View = lvwReport <font color="#3352cc">'样式为报表格式</font><br/>With .ColumnHeaders<br/>.Add Text:="编号", Width:=ListView1.Width / 4<br/>.Add Text:="名称", Width:=ListView1.Width / 4<br/>.Add Text:="规格", Width:=ListView1.Width / 4<br/>.Add Text:="颜色", Width:=ListView1.Width / 4<br/>End With<br/>Set rng = Range("A2:D12")<br/>For i = 1 To rng.Rows.Count<br/>With .ListItems.Add(Text:=rng.Cells(i, 1) <font color="#3154df">'在ListView控件中添加新的记录,标签(第1列标题)为rng.Cells(i, 1) 的值</font><br/>.SubItems(1) = rng.Cells(i, 2) <font color="#3131df">'设置ListView控件第2列内容</font><br/>.SubItems(2) = rng.Cells(i, 3) <font color="#4141cf">'设置ListView控件第3列内容</font><br/>.SubItems(3) = rng.Cells(i, 4) <font color="#4765db">'设置ListView控件第4列内容</font><br/>End With <br/>Next<br/>Set rng = Nothing<br/>End With<br/>End Sub
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 16:50 , Processed in 0.483570 second(s), 4 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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