
VB
小鸿叔
我太懒了,什么也不想写。
展开
-
EXCEL-VBA:读取UTF-8格式的文本文件
Function ReadUTF8File(ByVal FileName As String) As String With CreateObject("ADODB.Stream") .Type = 2 '读取 .Mode = 3 '读写模式 .Open .LoadFromFile FileName .Charset = "UTF-8" '编码格式 .Position = 2 .原创 2020-06-10 22:38:53 · 4017 阅读 · 0 评论 -
VB 任务栏标题闪烁
Private Declare Function FlashWindow Lib "user32" (ByVal hwnd As Long, ByVal bInvert As Long) As LongPrivate Sub Command1_Click()FlashWindow Me.hwnd, 1End Sub原创 2008-05-03 14:19:00 · 1930 阅读 · 0 评论 -
VB 字符串中使用双引号一法
以前都是用chr(34)来代替双引号的,今天在网上发现了一个新的方法,如下:Private Sub Form_Load()MsgBox "难道这就是传说中的" & Chr(34) & "小强" & Chr(34) & "。"MsgBox "难道这就是传说中的""小强""。"End Sub很明显第二种比第一种方法简单多了。唉~,怎么以前没发现呢。原创 2008-05-03 13:59:00 · 12596 阅读 · 5 评论 -
VB 窗体永运置前 (Always on Top)
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As原创 2008-05-03 13:51:00 · 2182 阅读 · 0 评论 -
VB 关闭已知标题窗口
使用API函数。先通过FindWindow得到窗口的句柄,然后对窗口发送关闭消息。Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Declare Fun原创 2008-05-03 13:25:00 · 1226 阅读 · 0 评论 -
VB 获得系统字体列表
Private Sub Form_Load()Dim counterFor counter = 0 To Screen.FontCount - 1 List1.AddItem Screen.Fonts(counter)NextEnd Sub原创 2008-05-03 13:10:00 · 3920 阅读 · 0 评论 -
VB 调用打开各种文件(自动查找使用默认的程序)
任何文件都可以,只要关联了相关的程序Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As Stri原创 2008-04-26 10:07:00 · 6883 阅读 · 2 评论 -
正则表达式语法
正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。这里有一些可能会遇到的正则表达式示例: JScript VBScript原创 2008-04-25 13:34:00 · 1184 阅读 · 0 评论 -
VB6 通过正则表达式定位字符串
[工程]-[引用] "Microsoft VBScript Regular Expressions"本例是要定位字符串s中数字出现的位置Private Sub Command1_Click()Dim re As RegExp, s As String, Matchss = "http://blog.sina.com.cn/juyonghong/123456.html"Set re = N原创 2008-04-25 11:07:00 · 1667 阅读 · 0 评论 -
VB 避免程序二次运行
Private Sub Form_Load()If App.PrevInstance Then MsgBox "程序已在运行。", vbInformation, "系统" EndEnd IfEnd Sub以上这种方法,是只针对于同目录同名的程序,下面还有一种方法是通过API函数实现的,不论程序怎么改名都不可以多开的。 Private Declare Functi原创 2008-04-25 10:24:00 · 1320 阅读 · 0 评论 -
定时自动关闭的消息对话框(效果同msgbox)
Private Sub Command1_Click()Set ws = CreateObject("WScript.shell")button = ws.popup("确认删除", 3, "现在时间(本窗体3秒自动关闭)", vbYesNo + vbDefaultButton2) 3是秒数Print buttonEnd Sub原创 2008-04-24 09:40:00 · 2994 阅读 · 0 评论 -
VB 数据类型转换函数集
Str(x) 将数值数据x转换成字符串Val(x) 将字符串x中的数字转换成数值Chr(x) 返回以x为ASCII码的字符Asc(x) 给出字符x的ASCII码值,十进制数Cint(x) 将数值型数据x的小数部分四舍五入取整Int(x) 取小于等于x的最大整数Fix(x) 将数值型数据x的小数部分舍去CBool(x) 将任何有效的数字字符串或数值转换成逻辑型CByte(x)原创 2008-04-22 16:03:00 · 5285 阅读 · 0 评论 -
VB中的转义字符(回车、换行、Tab等)
成员 常数 等效 说明 CrLf vbCrLf原创 2008-04-22 13:28:00 · 27774 阅读 · 0 评论 -
VB 字符串处理函数集
mid(字符串,从第几个开始,长度) 在[字符串]中[从第几个开始]取出[长度个字符串] 例如 mid("小欣无敌",1,3) 则返回 "小欣无" instr(从第几个开始,字符串1,字符串2) 从规定的位置开始查找,返回字符串2在字符串1中的位置 例如 instr(1,"小欣无敌","小") 则返回 1,instr(2,"小欣无敌","小"),则返回 0 。 0 表示未找到 I转载 2008-04-22 16:11:00 · 29799 阅读 · 1 评论 -
vb len("中文")的位数计算的解决方法
PS:对于pan05、black205两位提出的部份中文还是计算为1位的问题,已修改,感谢两位。通常VB中的len("中文"),返回的是2,因为vb计算的是Unicode的字符个数,所以每个汉字(日文、韩文)算作一个字符,但是如果我们不想计算Unicode的个数,而是要将汉字当作2位时,怎么办?可以用如下的函数实现: Private Function LenC(s As Str原创 2008-04-22 14:01:00 · 7932 阅读 · 6 评论 -
VB得到指定文件夹下的文件列表
Function GetFileList(ByVal Path As String, ByRef FileName() As String, Optional fExp As String = "*.*") As Boolean Dim fName As String, i As Long If Right$(Path, 1) "" Then Path = Path & ""原创 2008-01-18 10:46:00 · 1705 阅读 · 0 评论 -
VB清除IE缓存
在窗体里放一个command控件,然后点击,就可以清除了: Option Explicit Private Declare Function FindFirstUrlCacheGroup Lib "wininet.dll" ( _ ByVal dwFlags As Long, _ ByVal dwFilter As Long, _ ByRef lpSearchCondition As Long原创 2008-01-17 09:06:00 · 4382 阅读 · 0 评论 -
VB 自由拖放控件,不受网格限制
VB默认的是自动对齐到网格,这样使得我们在调整控件位置时不能随心所欲,下面有一种方法可以更改这种默认设置: 点击菜单[工具] -[选项] 选择[通用] ,将“对齐控件到网格”的选项去掉,试试,OK了。原创 2008-04-11 09:45:00 · 1666 阅读 · 0 评论 -
VB6 执行字符串命令(VB代码)
Private Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByVal fCheckOnly As Long) As LongFunction StepLine(ByVal cmd A原创 2008-07-18 13:19:00 · 5045 阅读 · 2 评论 -
VB 得到Windows登录用户名
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As LongPrivate Sub Command1_Click()Dim username As StringDim result As Longuser原创 2008-05-03 13:43:00 · 3316 阅读 · 0 评论 -
VB 系统热键实现(模块)
调用方法很简单,在Form中如下书写代码:Private Sub Form_Load()SetHotkey 1, "Ctrl,112", "Add" 按 Ctrl+F1 激活指定程序,F1的Ascii码为112SetHotkey 2, 113, "Add" 按 F2 激活指定程序,F2的Ascii码为113SetHotkey 3, "Ctrl+Alt,113", "Add" 按 Ct转载 2008-05-13 11:02:00 · 2646 阅读 · 0 评论 -
VBA:通过API函数,调用计算器,模拟按键等操作
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) ...原创 2018-12-06 14:58:00 · 5943 阅读 · 0 评论 -
VBA-API:通过BEEP函数(扬声器)播放音乐
Private Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long '响铃API函数声明Private Const K = 0 '空拍Private Const C4 = 523Private Const C_4 = 554Private Const ...原创 2018-10-27 11:00:34 · 5311 阅读 · 0 评论 -
Excel-VBA:定时器的用法
VBA中没有定时器,但是可以使用 “Application.OnTime 时间,过程名”的方式来做一个定时器 Public TimerEnabled As Boolean Sub EnableTimer() '开始 TimerEnabled = True StartTimer End Sub Sub DisableTimer() '停用 Ti...原创 2018-10-26 08:39:15 · 16235 阅读 · 2 评论 -
VBA-EXCEL:控制WORD文件
Sub a()Dim WordApp As Object '定义Word ApplicationSet WordApp = CreateObject("Word.Application")WordApp.Visible = True Dim WordDoc As Object '定义文档Set WordDoc = WordApp.Documents.Open("D:\MYWORK\Ex...原创 2018-12-06 14:59:00 · 3693 阅读 · 1 评论 -
EXCEL-VBA:汉字转拼音
Function PinYin(p As String) As String i = Asc(p) Select Case i Case -20319 To -20318: PinYin = "a " Case -20317 To -20305: PinYin = "ai " Case -20304 To -20296: PinYi...原创 2018-09-18 08:40:46 · 6336 阅读 · 0 评论 -
VB2005文件拖放到控件上
Public Class Form1 Private Sub TextBox1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop If e.Data.GetDataPresent(DataFormat原创 2012-07-22 08:16:33 · 886 阅读 · 0 评论 -
VB6控件 使用同样的事件
VB6 相同的控件 使用同样的事件。以TextBox 的GotFocus和、LostFocus事件为例,让FORM中的两个TextBox用同样的事件。原创 2011-03-10 19:44:00 · 1030 阅读 · 0 评论 -
Enter代替Tab键
Enter代替Tab键原创 2011-03-08 15:26:00 · 680 阅读 · 0 评论 -
阳历转阴历
阳历转阴历,公历转农历转载 2010-09-25 16:03:00 · 809 阅读 · 0 评论 -
VB 获得当前窗体标题
Private Declare Function GetForegroundWindow Lib "user32" () As LongPrivate Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cc原创 2009-03-20 13:56:00 · 3425 阅读 · 0 评论 -
VB计算两个日期/时间之间的差(DateDiff函数)
DateDiff() 函数返回两个日期之间的差值 。 表达式 DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]]) 允许数据类型: timeinterval 表示相隔时间的类型,代码为: “y“表示“年” “m“表示“月” “d“表示“日” “h“表示“时”转载 2009-01-20 13:54:00 · 14317 阅读 · 5 评论 -
VB SendKeys用法(模拟按键)
sendkeys "a" sendkeys "+a" 就表示shift+a SHIFT = + CTRL = ^ ALT = %原创 2009-01-19 22:34:00 · 9554 阅读 · 0 评论 -
VB2003-2008 遍历控件的方法
由于VB6以后的版本在遍历Form上的控件时不会处理容器里的控件(也就是说如果Form上有一个GroupBox控件且里面有TextBox控件一个,那么在Me.Controls里面就找不到GroupBox里的TextBox),所以单独写这么一篇文章。Form上所有的TextBox清空Private Sub ClearTextBox(cc As Control.ControlCo原创 2008-06-18 15:22:00 · 1061 阅读 · 0 评论 -
VB2003-2008 遍历控件的方法
由于VB6以后的版本在遍历Form上的控件时不会处理容器里的控件(也就是说如果Form上有一个GroupBox控件且里面有TextBox控件一个,那么在Me.Controls里面就找不到GroupBox里的TextBox),所以单独写这么一篇文章。Form上所有的TextBox清空Private Sub ClearTextBox(cc As Control.ControlCo原创 2008-06-18 15:22:00 · 968 阅读 · 0 评论 -
VB Shell调用后 等待程序运行结束
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As LongPrivate Declare Function GetExitCodeProcess Lib转载 2008-06-16 10:55:00 · 9602 阅读 · 8 评论 -
VB 动态生成控件
Dim WithEvents cmdBtn As VB.CommandButton 如果不需要事件,可以去掉WithEventsPrivate Sub Command1_Click() 添加按钮Set cmdBtn = Me.Controls.Add("VB.CommandButton", "myCtrl", Me)cmdBtn.Caption = "Click Me"cmdBtn.Mov原创 2008-05-27 16:48:00 · 1103 阅读 · 0 评论 -
VB 任意随机数(N-M)的通用函数(单取、多取存入数组、排序等功能) 内附随机数介绍
如果对于随机数了解没有什么问题,请跳过思路,直接看函数,如果对有函数有疑问或是改进意思,欢迎来信jyh_jack@163.com思路Randomize 初始化随机数生成器Print Int(Rnd() * 2) 生成随机数范围是0-1如果要生成1-10之间的随机数:可以看作随机数的的起始数是:1,范围是1+(0~9)Int(Rnd() * 10) 生成0-9之间的数,再加上起原创 2008-04-11 15:11:00 · 7320 阅读 · 2 评论 -
VB 鼠标右键选择list控件的内容
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Sub List1_MouseUp(Button As Intege原创 2008-01-18 16:59:00 · 2138 阅读 · 1 评论 -
asp (vbscript)中用正则表达式替换字符串
str="010-65321478 13116782417"dim regExSet regEx=New RegExpregEx.Pattern="/d{11}"regEx.Global=true 全部匹配str=regEx.Replace(str,"手机")regEx.Pattern="/d{3}-/d{8}"str=regEx.Replace(str,"座机")msgbox(str)原创 2008-01-15 16:48:00 · 2211 阅读 · 0 评论