- 博客(229)
- 收藏
- 关注
原创 excel sheet中数据的快速复制
利用Copymemory 复制数组,实现excel sheet中数据的任意复制,粘贴区域小于复制区域,数据将被截取,否则将用空格填充Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)Sub copyrang
2006-04-25 13:06:00 2759
原创 计算数组的维数
Option ExplicitPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, source As Any, ByVal Length As Long)Private Const VT_BYREF = &H4000&Private Sub Command1_Cli
2006-04-24 09:42:00 1829
原创 API判断数组是否为空
Private Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saArray() As Any) As Long API判断数组为空或没有初始化 Sub diag()Dim msg As StringDim arr1() As String, arr2() As String, arr3() As Date,
2006-04-24 09:29:00 8181
原创 excel sheet的 某列(m*n行) 快速复制到 m行n列区域
以下代码可以利用非循环的方式,实现把[a1:a12]的数据快速复制到[b1:e3]:Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Sub xxx()Dim arr1(), arr2(1 T
2006-04-24 09:20:00 2047
原创 COPYMEMORY 实现 N维数组向M维数组的转化
copymemory可以实现不同维数数组间的转换,如: Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)Dim a(5, 7) As Byte, b(15, 2) As Byte, c(47) As B
2006-04-24 09:09:00 1764
原创 MSHFlexGrid1使用技巧(三)[如何让鼠标在 MSHFlexGrid 中拖动也不允许选择多行]
MSHFlexGrid的selecttionMode设了by row,单击的时候是选择一行,但只要鼠标拖动也是可以选择多行: Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)If MSHFlexGrid1.RowSel End Sub 上
2006-04-21 15:31:00 2742
原创 关于VB日期与数字的转换(一)
VB中可将日期作为实数的一部分来存储。小数点左边的数值表示日期:小数点右边的数值表示时间。负的数值表示在1899 年 12 月 30 日 之前。所以每一天可以用一个整数来表示(以1899-12-30 为0,该日之后为正数,之前为负数) ,对于MSVB 的合法日期,即#100-1-1# 到#9999-12-31#,就有-657434~2958465来表示。对于给定的日期,用Clng()可以获得该日期
2005-12-20 17:27:00 9470
原创 关于DTPICKER 的 CHECKBOX
如果设置CheckBox属性=true时会出现一个复选框,这个框默认就是选定的,想调整成非选定状态,却不是很容易。Vb.net下稍简单一些dtp.value = nowdtp.checked = truedtp.checked = false但VB6没有CHECKED这个属性,笔者研究发现发送一个空格可以选定或取消选定:Private Sub Command1_Click()check DTPic
2005-12-18 10:06:00 3625 1
原创 关于不定方程整数解的个数的求法
题目:整数数列 {xn} ∈[0,max] , 且 ∑xi=sum, 则这样的序列共有多少个?方法:递归Function resultcount(ByVal n As Integer, ByVal max As Integer, ByVal sum As Integer) As IntegerIf n * max If n = 1 Then resultcount = 1If sum = 1 T
2005-12-12 21:07:00 6183 1
原创 关于互质数
自然数m,n,m∈(1,x),n∈(1,y),求m,n互质(即m,n 最大公约数为1)的概率x,y 驱于无穷大时,此概率的极限为6/π^2Function GETPMN(ByVal X As Long, Y As Long) As DoubleDim a() As Byte, i As Long, temp As Double, p As LongIf X > Y Thentemp = XX =
2005-11-30 15:51:00 1546
原创 素数的快速列举(三)
在http://blog.csdn.net/northwolves/archive/2005/11/18/532695.aspx 文章中,对小素数的列举进行了探讨,今天发现,由于小素数的倍数比较多,过滤所用时间较长。所以先对奇数进行初步过滤,可以达到提速的效果,继续改进如下:Private Sub Command1_Click()Dim p() As LongDim i As LongFor i
2005-11-19 17:26:00 2518 2
原创 素数的快速列举(二)
半年前曾在我的BLOG发过一篇文章(http://blog.csdn.net/northwolves/archive/2005/04/18/351998.aspx),对素数的快速列举进行了初步探讨,随后的讨论在http://community.csdn.net/Expert/topic/4395/4395751.xml?temp=.9719355进行, KiteGirl(小仙妹) 和
2005-11-18 23:56:00 2163
原创 如何在LISTBOX中移动鼠标就可以起到CLICK的作用
曾经看到有些软件能够实现这个效果,无非是向LISTBOX发送消息,获得光标所在位置的ITEM;或者干脆模拟一个鼠标左键的单击事件。下面用两种方法分别一试:方法1 Sendmessage 向LISTBOX发送消息Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, By
2005-11-17 23:07:00 2429
原创 我想死你了
在窗体上镂空文字: 我想死你了Private Declare Function BeginPath Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function EndPath Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function PathToRegion
2005-11-12 00:48:00 2260
原创 快速分解质因数
笔者在对素数的规律研究中,发现Sieve of Eratosthenes 方法对素数的筛选还是比较快的(参见拙作href="http://blog.csdn.net/northwolves/archive/2005/04/18/351998.aspxhttp://blog.csdn.net/northwolves/archive/2005/04/18/351998.aspx">http://blo
2005-11-09 00:47:00 8209 1
原创 如何在EXCEL SHEET中 动态添加控件
EXCEL SHEET中如何添加下拉框或者 文本框,命令按钮?下面的方法就可以:添加命令按钮1 新建WORKSHEET2 打开Visiual Basic编辑器3 选择SHEET1 的Worksheet_SelectionChange 事件4 编写代码如下:Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dim myobj
2005-11-07 00:39:00 12080 2
原创 EXCEL 中自定义函数的应用(关于 XOR 在 EXCEL 中的用法 及 文本型数字求和)
EXCEL 中,能否同调用内置函数一样在工作表中调用自已制作的自定义函数,出现对话框.同时也能做到像内置函数对话框里的说明?答案是肯定的,下面举例说明:题目: ①对文本型一系列数字进行求和(SUM()返回0) ②对数值型的一系列数字异或操作(EXCEL内置函数中没有XOR())1. EXCEL中在A,C两列依次输入1,2,3,4,5,A列设为数值型,C列设为文本型.2.
2005-10-20 01:40:00 16457 2
原创 VBA 实现 POWERPOINT 的TIMER 事件
POWERPOINT 无TIMER 控件,也不支持 TIMER 事件。但如果想在播放POWERPOINT 时显示一个动态的时间,有没有可行的办法?笔者曾为此十分苦恼,四处求救,始终没有满意的答复(多数建议添加FLASH 格式的CLOCK),近日想起了延时函数SLEEP,一试竟然成功,问题终于得以解决,特此与广大CSDN朋友共享。代码如下Option ExplicitPrivate Declare
2005-10-09 22:02:00 10604 3
原创 获取 IE 当前 URL 的代码
获取 IE 当前 URL 的代码,网上有许多类似代码,但在WINDOWSXP 下不能运行。查了一些资料,发现由于Win2000,WINXP 是基于Unicode代码的操作系统,所以没有WorkerA类,而以WorkerW类取而代之(XXXXA should be used on not unicode compliant windows oses likes Windows 95,98 etc a
2005-10-09 14:30:00 1963
原创 关于 SENDKEYS 的代码
sendkeys 的用法(MSDN): SendKeys 语句 将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。语法SendKeys string[, wait]SendKeys 语句的语法具有
2005-09-26 07:03:00 3973
原创 VB 利用WINRAR 压缩文件及解压
预备知识:1. Shell 函数执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。语法Shell(pathname[,windowstyle])Shell 函数的语法含有下面这些命名参数:部分描述pathname必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文
2005-09-25 09:17:00 11770 6
原创 如何从公共对话框控件中提取多个文件名称
代码如下:Private Sub Command1_Click()Dim i As Integer, title As String, FileNames As String With CommonDialog1 .FileName = "" .Filter = "All Files|*.*" 过滤器指定在对话框的文件列表框中显示的文件的类型 .Flags
2005-08-30 22:56:00 1921
原创 MSHFlexGrid1使用技巧(二)[如何让MSHFlexGrid实现点击列标题排序]
Dim mysort As IntegerPrivate Sub Form_Load()With MSHFlexGrid1.Cols = 4.Rows = 20 20行4列For i = 0 To 79.TextArray(i) = IIf(i NextEnd Withmysort = 7 升序End SubPrivate Sub MSHFlexGrid1_MouseDown(Button
2005-08-30 00:17:00 3490
原创 关于秒表
Private Declare Function timeGetTime Lib "winmm.dll" () As LongDim STARTTIME As LongPrivate Sub Command1_Click()STARTTIME = timeGetTimeTimer1.Enabled = TrueEnd SubPrivate Sub Form_Load()Label1.Caption
2005-08-29 23:45:00 1349
原创 素数的快速列举
好久没来这里了。最近看了一些数论方面的文章,受益匪浅。想到我们初学VB时,利用循环查找素数是必修之课,随手写了两段列举素数的代码,并详细注释。自己感觉还是比较快的。 代码如下: ******************************************************************************* Target:to get all prime numb
2005-04-18 01:12:00 3045 1
原创 Sendkeys 和 Sendmessage 使用技巧一例
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Declare Function FindWindow Lib
2004-10-24 23:54:00 5401 2
原创 如何象SQL语句中的Exec那样在VB中执行一段代码?
利用API 引用vb6a.dll (Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As Long)可以实现字符串命令的执行
2004-10-20 22:59:00 3421 3
原创 高精度整数除法
Private Sub Command1_Click()Devide 123456789, 987654321, 2000End SubSub Devide(ByVal X As Long, ByVal Y As Long, Optional ByVal Numdigitsafterdecimal As Integer = 100, Optional ByRef result As Strin
2004-09-16 21:25:00 2379 2
原创 利用API 实现 字符串的镜像(二)
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc
2004-09-16 19:30:00 1559
原创 利用API 实现 字符串的镜像(一)
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc
2004-09-16 17:33:00 2317 1
转载 英语单词构词法
英语单词构词法 (1)前缀 1.表示否定意义的前缀1)纯否定前缀a-, an-, asymmetry(不对称)anhydrous(无水的)dis- dishonest, dislikein-, ig-, il, im, ir, incapable, inability, ignoble, impossible, immoral, illegal, irregularne-, n-, non
2004-09-02 23:07:00 30764
原创 MSHFlexGrid1使用技巧(一)[如何让MSHFlexGrid只能被选中一行]
MSHFlexGrid控件点击时可以选中多行,但有时我们需要仅仅选中一行,有一个小技巧: Option ExplicitPrivate Sub Form_Load()Dim i As Integer, j As IntegerWith MSHFlexGrid1.Rows = 10.Cols = 4For i = 1 To 9.TextMatrix(i, 0) = "第 " & i & "
2004-09-02 22:35:00 3506
原创 N皇后问题
题目:由八皇后问题扩展开来,即n*n的棋盘上摆放n个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。分析: 问题可以转化为12345...n 的满足某种条件(行已不等,列亦不等,只需设定其不在同一斜线上,即斜率不为 1 或-1 )的排列.代码:Private Sub queensn(ByVal n As Integer, ByRef
2004-08-09 17:35:00 2299 3
原创 谈谈五皇后问题
题目:在8×8格的国际象棋棋盘上摆放五个皇后,使其能攻击棋盘上的任何敌方棋子,有多少种摆法。分析:依然是一个组合问题。某个位置摆放一个“后”,则其所在行,所在列,所在对角线均属其控制范围,可用一个布尔型数组解决。代码:Option ExplicitSub getall(Optional ByRef allresult As String)Dim s(63) As Boole
2004-08-08 14:37:00 6306 4
原创 如何识别键盘左右的shift,Ctrl或Alt键
用API (GetAsyncKeyState)实现,在WIN 2K,XP 下有效:Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As IntegerPrivate Const VK_LSHIFT = &HA0Private Const VK_RSHIFT = &HA1Private Con
2004-08-03 18:21:00 2664
原创 在场景中输出横向或纵向压缩的中文字符
今天参考一个外文代码写的:(作者:Steve McMahon [email protected], 网址: http://www.shitalshah.com/vbxlr/tips/vba0035.htm ) Private Const LF_FACESIZE = 32Private Const FW_NORMAL = 400Private Const F
2004-08-01 23:15:00 1684 2
原创 利用最小二乘法实现图片中多个点的一元线性回归
在日常生活和科学实验中,人们会经常发现因变量y和自变量x之间存在一定线性关系设一组数据为: 则y与x的关系可以用线性方程表示: 按最小二乘法可得: 线性关系的程度可以用相关系数r表示 所以,如果想在图象框中根据已知的多个存在线性关系的点描出相应的离
2004-07-31 22:03:00 3851 4
原创 如何获取系统的临时目录路径?
GetTempPath取得的是一个DOS名称,当文件名长度大于8时,长文件名格式“C:/Documents and Settings/Administrator/Local Settings/Temp”会显示成“C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp”的短文件名格式,如何根据自己需要取得系统临时目录的途径,下面是一个新写的函数,调用两个API 实现,相信许多朋友可能用
2004-07-30 17:49:00 2228
原创 如何随机生成指定数目的国标汉字?
为了使每一个汉字有一个全国统一的代码,1980年,我国颁布了第一个汉字编码的国家标准: GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。由于国标码是四位十六进制,为了便于交流,大家常用的是四位十进制的区位码。所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个"区",每一列称为一个"位",
2004-07-25 14:26:00 5245 2
原创 动态裁剪窗体标题栏
本文演示了如何利用API进行窗体标题栏的裁剪和恢复,一并演示了控件的动态添加方法: This sample show you how to cut the caption title exactly and create controls with code.add a new form ,do nothing but copy this codes for it.Option Expli
2004-07-25 10:03:00 1704 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人