字符串处理
northwolves
MS-VB-MVP
MS-EXCEL-MVP
展开
-
UDF to show the expression of cell formula.
UDF to show the expression of cell formula原创 2010-12-24 13:49:00 · 2512 阅读 · 0 评论 -
自动获取美元最新汇率
Sub MACRO1()With CreateObject("Msxml2.XMLHTTP").Open "GET", "http://www.google.cn/search?&q=1usd%3D%3Frmb", False.SendMsgBox Split(Split(.responseText, "1美元 =")(1), "人民币")(0)End WithEnd Sub原创 2007-10-11 23:43:00 · 3169 阅读 · 0 评论 -
VBA增加sheet,重名时自动命名
VBA增加sheet,如何在出现重名时自动命名?如 Sheets.Add ActiveSheet.Name = "mysheet"如果已经存在名称为“mysheet”的sheet,如何使增加的sheet名称自动加上一个括号变成"mysheet(1)"呢? 即类似在某文件夹内不断复制同一文件的效果,代码如下:Sub addsheets()Dim i As Long, sh As原创 2007-09-23 14:10:00 · 10520 阅读 · 1 评论 -
回溯实现数组元素的排列组合
参考http://blog.csdn.net/northwolves/archive/2007/08/29/1764177.aspx中的代码,将字符串数组x取n个元素进行排列组合:Sub getall(ByRef x() As String, ByVal n As Byte, Optional types As Byte = 0)Dim m As Long, num As Long, i As原创 2007-08-29 17:57:00 · 2781 阅读 · 0 评论 -
回溯实现数字的排列组合
从1--m中选n个数字的排列组合的简单实现,速度还可以:Sub getall(ByVal m As Byte, ByVal n As Byte, Optional types As Byte = 0)types=0为排列 types=1 为组合Dim num As Long, i As Integer, k As Integer, a(), s() As StringReDim a(1 To原创 2007-08-29 17:41:00 · 3791 阅读 · 0 评论 -
dir()递归 遍历子目录
dir()递归即可:Private Sub Command1_Click()Listfiles "d:/JAVA", List1End SubSub Listfiles(ByVal mydir As String, ByVal filelist As ListBox)Dim i As Long, dirlevel As Long, fname As String, dirlist() As Str原创 2007-04-10 11:19:00 · 5576 阅读 · 0 评论 -
EXCEL 中 判断某个自定义序列是否存在
Sub Macro1()Dim customlist As String, i As Longcustomlist = "全部自定义序列" & vbCrLf & String(30, "-") & vbCrLfFor i = 1 To Application.CustomListCountcustomlist = customlist & "【" & Format(i, "00") & "】" &原创 2007-04-10 11:17:00 · 1487 阅读 · 0 评论 -
按行获取文本文件的内容
不知是不是VB里最简单的方法?Sub getlines(byval filename as string,byref lines() as string)If Len(Dir(filename)) = 0 Then Exit SubOpen filename For Input As #1 打开文件。lines = Split(StrConv(InputB(LOF(1原创 2007-04-08 14:47:00 · 929 阅读 · 0 评论 -
调用EXCEL 实现阿拉伯数字转中文
方法一:Private Sub Command1_Click()Dim xlapp As Object, n As Currency, temp As StringSet xlapp = CreateObject("Excel.Application")Randomizen = Int(Rnd * 10 ^ 15)temp = ntemp = temp & vbCrLf & xlapp.Eva原创 2007-06-30 16:40:00 · 1470 阅读 · 0 评论 -
How to remove all characters between two brackets?
How to remove all characters between two brackets? Such as "12345 (rtetnj) dsfd (fddsgd) dsf "----> "12345 dsfd dsf " Use regexp syntaxes ,its too simple . Function StringWithoutBracke原创 2007-06-25 02:52:00 · 769 阅读 · 0 评论 -
一亿亿以下的阿拉伯数字转中文的自定义函数
Function trans(number As String) As String Dim x As String, y As String x = Split(number, ".")(0) Const upcase = "○一二三四五六七八九 十百千万十百千万亿十百千万十百千万" 定义汉字 If Val(x) >= 10 ^ 16 Then MsgBox "数目太原创 2007-06-25 02:45:00 · 1583 阅读 · 0 评论 -
两个Listbox的关联(省名 和 该省城市的对应)
Dim prov As New Collection Private Sub Form_Load() prov.Add "北京市,东城,西城,崇文,宣武,朝阳,丰台,石景山,海淀,门头沟,房山,通州,顺义,昌平,大兴,平谷,怀柔,密云,延庆", "北京" prov.Add "上海市,黄浦,卢湾,徐汇,长宁,静安,普陀,闸北,虹原创 2006-11-03 09:45:00 · 9361 阅读 · 0 评论 -
递归方法巧解不定方程(二)
笔者在2004年曾写过一篇 递归方法巧解不定方程 。昨天在一位网友的启发下,对代码进行了重写,使其能够设置每个变量的取值范围。代码如下Private Sub Command1_Click()Dim min(1 To 5) As Integer, max(1 To 5) As Integer, RESULTmin(1) = 2min(2) = 3max(1) = 3max(2) = 7jiefa原创 2006-06-07 09:05:00 · 1719 阅读 · 0 评论 -
VB计算圆周率
采用普遍的傅立叶级数展开方法 pi=2+1/3*(2+2/5*(2+3/7*(2+4/9*(2+5/11 .....))))))输入:需计算的圆周率位数,理论精度约30万位 Add a commandbutton and textbox(multine=true,scrollbars=both) to form1Option Explicit Private Sub C原创 2006-06-06 09:30:00 · 9450 阅读 · 0 评论 -
Get prime numbers nearby a number less than 10^10
For any given number less than 10^10,you can get prime numbers from 10000 numbers nearby it by the following codes: Private Sub Command1_Click()Debug.Print primes10000(987654321)End Sub原创 2008-12-28 20:32:00 · 1144 阅读 · 0 评论 -
About Google Treasure Hunt 2008
今天比较高兴,一口气做完了四道题目。看来VB6 仍有用武之地,尽管速度着实令人失望。 Thank you for entering the Treasure Hunt! Here are the first correct entries we received for the email address northwolves@gmail.com: Questi原创 2008-12-30 15:37:00 · 974 阅读 · 0 评论 -
VB获取网页下文字的链接地址
题目: 如何获取网页下文字的链接地址 窗口有WebBrowser1,和一个Text1 现在 Private Sub Form_Load() WebBrowser1.Navigate "http://www.baidu.com" End Sub 打开窗体显示百度的首页,要求滑动鼠标到“新闻”时 Text1里显示http://news.baidu.com/ 滑动到“帖吧”时 Text1里显原创 2009-11-24 21:31:00 · 3398 阅读 · 3 评论 -
VBA从人民银行网站获取5个币种的历史汇率信息
Sub 汇率()Dim url As String, arr, v() As String, i As Long, n As Long, p As Long, html As Stringurl = "http://www.pbc.gov.cn/huobizhengce/huobizhengcegongju/huilvzhengce/renminbihuilvjiaoyishoupanj原创 2009-11-05 21:30:00 · 3935 阅读 · 2 评论 -
An example of responseXML.getElementsByTagName
To read nodes of a certain tagname of an xml file,its easy to access: Sub Test()Dim http As Object, nod, nod2Set http = CreateObject("Microsoft.XMLHTTP")http.Open "get", "http://www.w3s原创 2009-10-27 19:24:00 · 841 阅读 · 0 评论 -
Excel 汉字区位互相转换公式
汉字-->区位: =TEXT(INT(CODE(A1)/256-160)*100+MOD(CODE(A1),256)-160,"0000") 区位-->汉字: =CHAR((INT(A1/100)+160)*256+MOD(A1,100)+160)原创 2009-05-22 11:18:00 · 1068 阅读 · 0 评论 -
C++ 实现"1234567"的全排列
原帖地址(http://starlancer.org/~is2004/mini/test/read.cgi/gen/1085476446/)方法1:#include char c[9];int x,j,k;int main(int i){for(i=35280;i--;)if(j=i%7,c[j+1]=j+49,!j){for(x=7,j=720;x-1;j转载 2008-12-24 16:05:00 · 1765 阅读 · 0 评论 -
使用动态规划解决有关数字组合的问题
题目:在SHEET2中列出SHEET1表中重量不超过170,体积不超过200的所有组合(http://club.excelhome.net/viewthread.php?tid=382466&page=1#pid2435030) Sheet1 序号重量体积1253022631327324原创 2008-12-20 13:43:00 · 1842 阅读 · 2 评论 -
How Rich Are You in the World?
HOW RICH ARE YOU? Use the codes below ,you can find where you sit in the richest people list in world. Sub Showhowrichyouare()Getit InputBox("Please enter原创 2008-12-08 20:18:00 · 1603 阅读 · 0 评论 -
My Sequences on The On-Line Encyclopedia of Integer Sequences
All the links: http://www.research.att.com/~njas/sequences/?q=northwolves&language=english A154532 a(n) = largest 10-digit number whose nth power contains each digit (0-9) n times原创 2009-02-03 21:00:00 · 971 阅读 · 0 评论 -
Multi select elements which sums upto a certain number from an array(II)
Give an array and a certain number,how to select some of the elements to sums upto the number? (Also see http://blog.csdn.net/northwolves/archive/2008/11/25/3372338.aspx)The following codes can brin原创 2009-02-03 20:49:00 · 1455 阅读 · 0 评论 -
Ten Digit Powers
With helps of many friends, the Ten Digit Powers sequence has been updated to n=128. More details,see Ten digit numbers Millions thanks to 无心人,mathe and gxqcn. The sequence was showed as原创 2009-01-13 21:45:00 · 1041 阅读 · 0 评论 -
Smallest Ten Digit Powers
This is a companion piece of Largest Ten Digit Powers . The codes are almostly same,with a few changes only. Function befit(ByVal s As String, ByVal num As Long) As Boolean tell if a string原创 2009-01-11 22:41:00 · 1266 阅读 · 0 评论 -
VB获得迅雷资讯弹出网页的源代码
迅雷资讯弹出网页采用UTF-8编码,需要编制自定义函数对XMLHTTP对象获得的源代码进行转换:Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long, ByVal cc原创 2009-01-04 23:11:00 · 2914 阅读 · 0 评论 -
List of Hello World Programs in 200 Programming Languages
List of Hello World Programs in 200 Programming Languages by Scriptol.org(http://www.scriptol.org/hello-world-programming-language.php) A complete collection of the smallest possible programs, i转载 2009-01-02 23:16:00 · 2853 阅读 · 0 评论 -
InputBox with Password Characters(转帖)
The following codes are from http://www.freevbcode.com/ShowCode.asp?ID=1214Add a form with commandbutton:Private Sub Command1_Click() Dim ret As String SetTimer hwnd, NV_INPUTBOX, 10, AddressO转载 2006-08-29 09:12:00 · 1265 阅读 · 0 评论 -
快速分解质因数
笔者在对素数的规律研究中,发现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 · 8282 阅读 · 1 评论 -
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 · 16586 阅读 · 2 评论 -
非递归解决组合问题
从m 个互不相同元素中取 n 个元素,一般选用递归或回溯算法解决,本文旨在利用进制转换的方法达到这一目的。代码如下 Sub GETALL(ByVal num As Integer, ByRef x As Variant, ByRef RESULT() As String, Optional ByRef all As Long) Dim A() As String, b() As Integ原创 2004-07-25 09:29:00 · 3899 阅读 · 4 评论 -
如何得到某集合的所有子集合?
我们都知道,一个含n个元素的集合拥有2^n个子集合,并且不难发现,其中每个子集合都是从0到2^n-1 每个数的二进制格式中0 放弃,1选择的结果,如下所示: {} 000 {1} 100 {2} 010 {1,2} 110 {3} 001 {1,3} 101 {2,3} 011 {1,2,3} 1原创 2004-07-24 16:04:00 · 2463 阅读 · 0 评论 -
再谈八皇后问题
题目:十九世纪著名的数学家高斯提出:在8×8格的国际象棋棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。分析:其实问题可以转化为12345678的满足某种条件(行已不等,列亦不等,只需设定其不在同一斜线上,即斜率不为 1 或-1 )的排列.通过前两天用非递归方式解决序列的全排列问题(.http://blog.csdn.net原创 2004-07-24 00:16:00 · 3450 阅读 · 0 评论 -
非递归实现不重复序列的全排列(一)
笔者曾写过利用递归实现不重复序列全排列的例子http://blog.csdn.net/northwolves/archive/2004/04/07/19590.aspx 现在给出另一个利用进制实现的代码: Sub pailie1(ParamArray x())Dim starttime As Single, endtime As SingleDim n As Integer, i As Long,原创 2004-07-21 14:29:00 · 4035 阅读 · 0 评论 -
如何获取系统的临时目录路径?
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 · 2272 阅读 · 0 评论 -
在场景中输出横向或纵向压缩的中文字符
今天参考一个外文代码写的:(作者:Steve McMahon steve@vbaccelerator.com, 网址: 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 · 1698 阅读 · 2 评论 -
如何取得文本框中包含指定字符串的行
文本框属性为允许多行显示时,由于是软回车实现的分行,无法用SPLIT(TEXT1.TEXT,VBCRLF)准确地取出指定行的内容。本文利用SENDMESSAGE 系列函数,通过发送文本框消息,实现了获取包含指定字符串的行,并演示了如何获取文本框中文本总行数和任意指定行的文本内容。add a textbox with "multiline=true","scrollbars=2".原创 2004-04-19 00:10:00 · 1813 阅读 · 0 评论 -
利用API 实现字符串表达式的计算
下面实现字符串表达式计算代码由笔者收藏的本论坛代码改编,记不清是哪位网友提供的了,非常感谢。Option ExplicitPrivate Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unknownn2 As Long, ByV原创 2004-04-05 23:22:00 · 1713 阅读 · 0 评论