摘要: VBA的密码保护很容易破解,因此,在需要保护代码时,一般都用其它编程工具生成COM加载宏,然后再让Excel加载,这样就没有办法查看到原代码了。Excel吧一向主张都是知识分享,所有的文件都没有进行保护(非本站原创的作品,原作者有保护的除外),但做为一项技术与知识点,这里我们通过创建一个COM加载宏的过程来了解怎么创建COM加载宏。 首先说明一下编程的环境。我使用的是VB6.0企业版与Excel2003,在Winxp中测试通过,操作系统一般影响不大,而编程工具还可以选择其它,不过基本过程类似,但代码就不一样了,而Excel版本如果是2007版的话,下面这个例子生成的工具栏会在加载项菜单中出现。 阅读全文
posted @ 2012-04-17 22:50 ibg 阅读(959) 评论(0) 推荐(0) 编辑
摘要: 1、选取一个单元格: Range("A1").select Range("A" & 1).select Cells(1).select Cells(1, 1).select Cells(1, "A").select2、选取连续单元格: Range("a1:b10").select Range("a1", "b10").select Range(Cells(1, 1), Cells(10, 2)).select 3、选取不连续单元格: Range("a1,b2 阅读全文
posted @ 2012-04-17 22:45 ibg 阅读(1286) 评论(0) 推荐(0) 编辑
摘要: 何处转来已无所知......vb是常用的应用软件开发工具之一,由于vb的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用execl的强大报表功来实现报表功能。但由于vb与excel由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。 一、 vb读写excel表: vb本身提自动化功能可以读写excel表,其方法如下:1、在工程中引用microsoft excel类型库: 从"工程"菜单中选择"引用"栏;选择microsoft excel 9.0 o 阅读全文
posted @ 2012-04-17 22:42 ibg 阅读(803) 评论(0) 推荐(0) 编辑
摘要: 第一天作者:风未起时来源:中国站长学院发布时间:2006-3-28 6:02:06发布人:admin在《十天学会ASP》教程中,我粗粗介绍了一下ADO,实际上可以说是点到为止。只说了Connection对象中的Open方法建立到数据源的物理连接,使用 Close 方法将其断开;Recordset 对象中的使用 AddNew、Update 和 Delete 方法所做的更改,在最后分页中提到了Recordset 对象中AbsolutePage和RecordCount属性。在这里我想有必要再较系统说一下ADO的各种对象的方法、属性。毕竟ADO不仅应用在ASP中,VB,VC都可以用到。在这十天中我想主 阅读全文
posted @ 2012-04-17 22:37 ibg 阅读(171) 评论(0) 推荐(0) 编辑
摘要: This blog for-------ali 也许可以解决他的吃饭问题,呵呵=ROUND(RAND()*a+b,c) *a就是为了限制随机数变化的区间; +b是确定随机数起始值; c是小数点后位数。 例如:随机产生(2.8-3.2)范围内的任意数(小数点后保留2位)公式为 =ROUND(RAND()*0.4+2.8,2) ------------------------------------------------------------------- 要产生一个Min到Max之间的随机数,可以使用公式 =Int(Rand()*(Max-Min+1))+Min -------------- 阅读全文
posted @ 2012-04-17 22:35 ibg 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 何处转来已无所知......定制模块行为 (1) Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示 Option Compare Text '字符串不区分大小写 Option Base 1 '指定数组的第一个下标为1 (2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler '当错误发生时跳转到过程中的某个位置 (4) On 阅读全文
posted @ 2012-04-17 22:31 ibg 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 群里有朋友问到一个“高级筛选”的问题:如何筛选出名称列中所有以“A"开头,以“E”到“G”结尾的数据?这让我想到了高级筛选中“以公式结果作为条件”的方法。很久不用已经生疏了,温习了下,结果如下:需要注意的是“条件区域”!B1是一个虚拟字段,B2是一个返回TRUE或FALSE的公式。 阅读全文
posted @ 2012-04-17 22:18 ibg 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 先安装IrfanView在C盘,然后把下面的过程赋给一个宏,自定义在工具栏。Sub CopyAsGraphic() Const Viewer As String = "C:\Program Files\IrfanView\i_view32.exe" Selection.Copy Shell Viewer, 1 Application.SendKeys "^v" End Sub 用鼠标选中要截图的区域,然后运行宏,即可打开IrfanView程序。 阅读全文
posted @ 2012-04-17 22:16 ibg 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 行号可以用=ROW()得到,但是列标的获取就有些麻烦了.=LEFT(ADDRESS(ROW(),COLUMN(),2),FIND("$",ADDRESS(ROW(),COLUMN(),2))-1)可以把ADDRESS(ROW(),COLUMN(),2)定义为一个名称,那样看起来就要清爽些了。========================================================下面这个更简洁!=SUBSTITUTE(ADDRESS(ROW(),COLUMN(),4),ROW(),"")贴出ADDRESS的说明:ADDRESS按照给 阅读全文
posted @ 2012-04-17 22:13 ibg 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 如何获得一行中最大值所在的单元格地址?=ADDRESS(MAX((C8:G8=MAX(C8:G8))*ROW(C8:G8)),MAX((C8:G8=MAX(C8:G8))*COLUMN(C8:G8)),4)单元格地址即行号和列标,如A1。ADDRESS()即是返回单元格地址的函数。此公式通过MAX()函数得到行中最大值的地址。最小值与此类似。可在公式审核中一步步求值,即可看出此公式的计算过程。------------------------------------再引申一下:如何获得一个区域中的最大值所在的单元格地址?比如下图中的A1:E5这个范围内的最大值是C4.=ADDRESS(MAX(( 阅读全文
posted @ 2012-04-17 22:11 ibg 阅读(617) 评论(0) 推荐(0) 编辑