<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>奔向远方 &#187; windows相关</title>
	<atom:link href="http://www.tisswb.com/archives/category/windows/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tisswb.com</link>
	<description>结婚开始倒计时了，高兴~</description>
	<lastBuildDate>Tue, 19 Jul 2011 09:30:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>windowsXp 远程桌面依赖的服务</title>
		<link>http://www.tisswb.com/archives/470.html</link>
		<comments>http://www.tisswb.com/archives/470.html#comments</comments>
		<pubDate>Thu, 09 Apr 2009 01:40:22 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[windwos]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=470</guid>
		<description><![CDATA[windows xp 的远程桌面服务对应的端口是3389.
必须开启的依赖服务如下：

Remote Desktop Help Session Manager：(手动/已启动)：管理并控制远程协助。如果此服务被终止，远程协助将不可用。终止此服务前，请参见“属性”对话框上的“依存”选项卡。 
telnet(手动/已启动) :允许远程用户登录到此计算机并运行程序，并支持多种 TCP/IP Telnet 客户，包括基于 UNIX 和 Windows 的计算机。如果此服务停止，远程用户就不能访问程序，任何直接依靠它的服务将会启动失败。 
Terminal Services(手动/已启动):允许多位用户连接并控制一台机器，并且在远程计算机上显示桌面和应用程序。这是远程桌面(包括管理员的远程桌面)、快速用户转换、远程协助和终端服务器的基础结构。 
Workstation(自动/已启动):创建和维护到远程服务的客户端网络连接。如果服务停止，这些连接将不可用。如果服务被禁用，任何直接依赖于此服务的服务将无法启动。
]]></description>
			<content:encoded><![CDATA[<p>windows xp 的远程桌面服务对应的端口是3389.</p>
<p>必须开启的依赖服务如下：</p>
<div id="blog_text" class="cnt">
<p><span style="font-size: small;">Remote Desktop Help Session Manager：(手动/已启动)：管理并控制远程协助。如果此服务被终止，远程协助将不可用。终止此服务前，请参见“属性”对话框上的“依存”选项卡。 </span></p>
<p><span style="font-size: small;">telnet(手动/已启动) :允许远程用户登录到此计算机并运行程序，并支持多种 TCP/IP Telnet 客户，包括基于 UNIX 和 Windows 的计算机。如果此服务停止，远程用户就不能访问程序，任何直接依靠它的服务将会启动失败。 </span></p>
<p><span style="font-size: small;">Terminal Services(手动/已启动):允许多位用户连接并控制一台机器，并且在远程计算机上显示桌面和应用程序。这是远程桌面(包括管理员的远程桌面)、快速用户转换、远程协助和终端服务器的基础结构。 </span></p>
<p><span style="font-size: small;">Workstation(自动/已启动):创建和维护到远程服务的客户端网络连接。如果服务停止，这些连接将不可用。如果服务被禁用，任何直接依赖于此服务的服务将无法启动。</span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/470.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DDE Server Window : photoshop .exe错误的解决方法</title>
		<link>http://www.tisswb.com/archives/456.html</link>
		<comments>http://www.tisswb.com/archives/456.html#comments</comments>
		<pubDate>Mon, 30 Mar 2009 15:21:34 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=456</guid>
		<description><![CDATA[最近我的photoshop cs3老是出现这个错误，每次使用完ps，关闭的时候就会出现
Adobe Photoshop CS3 : photoshop.exe  应用程序错误
“Ox5adc1531”指令引用的“Ox00000014”内存。该内存不能为“read”。要终止程序，请单击“确定”。
虽然没有什么大碍，但始终是碍眼的很，并且担心哪天出次大毛病就难看了。到网上找了找解决方法，还真让我找到了。
解决办法：
把C:\Program Files\Common Files\Adobe\Adobe Version Cue  CS3\Client\3.0.0中的三个.dell文件复制到C:\Program Files\Adobe\Photoshop  CS3文件里面这样就可以了！！！
如果仍有人遇到此问题，希望看到的人推荐此方法！！
]]></description>
			<content:encoded><![CDATA[<p>最近我的photoshop cs3老是出现这个错误，每次使用完ps，关闭的时候就会出现</p>
<p>Adobe Photoshop CS3 : photoshop.exe  应用程序错误<br />
“Ox5adc1531”指令引用的“Ox00000014”内存。该内存不能为“read”。要终止程序，请单击“确定”。</p>
<p>虽然没有什么大碍，但始终是碍眼的很，并且担心哪天出次大毛病就难看了。到网上找了找解决方法，还真让我找到了。</p>
<p><strong>解决办法：</strong></p>
<p>把C:\Program Files\Common Files\Adobe\Adobe Version Cue  CS3\Client\3.0.0中的三个.dell文件复制到C:\Program Files\Adobe\Photoshop  CS3文件里面这样就可以了！！！</p>
<p>如果仍有人遇到此问题，希望看到的人推荐此方法！！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/456.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sysfader:iexplore.exe-应用程序错误的解决方法</title>
		<link>http://www.tisswb.com/archives/448.html</link>
		<comments>http://www.tisswb.com/archives/448.html#comments</comments>
		<pubDate>Thu, 26 Mar 2009 07:02:52 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=448</guid>
		<description><![CDATA[在运行iexplore.exe浏览网页的时候，有时会弹出错误提示框，一点确定就把IE关闭了。这由于设置了网页的指定颜色导致的。
错误信息提示如下：
错误：“0x029b6c3d”指令引用的“0&#215;00000000”内存。该内存不能 为“read”。
sysfader.exe是附属于Nvidia显卡驱动程序的，用于处理桌面的淡入/淡出效果，以及气球提示条，在通常情况是不会出现在进程中并引起错误的。
我用了3步解决：
第一步：注册所有的Dll，具体方法是：
点击:开始&#8211;&#62;运行,在运行框中输入cmd，在命令提示符下输入：
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
（请耐心等待全部进行完毕，注册一下对系统是有好处的）
第二步：请右键单击&#8221;我的电脑&#8221;，点击&#8221;属性&#8221;&#8211;&#62;&#8221;高级&#8221;，在&#8221;性能&#8221;一栏中，将所有特殊效果取消。即调整为最佳性能。
<span class="readmore"><a href="http://www.tisswb.com/archives/448.html" title="sysfader:iexplore.exe-应用程序错误的解决方法" target="_blank">阅读全文——共410字</a></span>]]></description>
			<content:encoded><![CDATA[<p>在运行iexplore.exe浏览网页的时候，有时会弹出错误提示框，一点确定就把IE关闭了。这由于设置了网页的指定颜色导致的。</p>
<p>错误信息提示如下：<br />
错误：“0x029b6c3d”指令引用的“0&#215;00000000”内存。该内存不能 为“read”。</p>
<p>sysfader.exe是附属于Nvidia显卡驱动程序的，用于处理桌面的淡入/淡出效果，以及气球提示条，在通常情况是不会出现在进程中并引起错误的。</p>
<p><span style="color: #ff0000;">我用了3步解决：</span></p>
<p>第一步：注册所有的Dll，具体方法是：<br />
点击:开始&#8211;&gt;运行,在运行框中输入cmd，在命令提示符下输入：<br />
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1</p>
<p>（请耐心等待全部进行完毕，注册一下对系统是有好处的）<br />
第二步：请右键单击&#8221;我的电脑&#8221;，点击&#8221;属性&#8221;&#8211;&gt;&#8221;高级&#8221;，在&#8221;性能&#8221;一栏中，将所有特殊效果取消。即调整为最佳性能。</p>
<p>第三步：恢复你先前设置的壁纸及主题。问题解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/448.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>无法卸载和重装photoshop CS3 的解决办法</title>
		<link>http://www.tisswb.com/archives/245.html</link>
		<comments>http://www.tisswb.com/archives/245.html#comments</comments>
		<pubDate>Wed, 18 Feb 2009 14:24:37 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[photoshop]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=245</guid>
		<description><![CDATA[源地址：http://www.longworks.cn/article.asp?id=153 
前段时间由于系统以前没装Fireworks，在网上下了个FireworksCS3装上后，装上之后由于修改了PS的序列号，导致每次启动ps都弹出要 求输入序列号，今天30的期限终于到了，PS也用不了，郁闷，重装Adobe.CS3龙卷风3合1白金版，结果提示说:您一次只能安装一种 Adobe 产品，删了再装吧，但是，想卸载掉重新再装可没那么容易了，在控制面板下的添加和删除程序中点了半天也无法卸载,一点反应都没有，既然无法卸载然后就把整 个photoshop CS3安装文件给单独删除了,准备重新安装photoshop CS3.竟然还给我出现那个提示，用windows优化大师清理注册信息，不行；把注册表里的adobe信息全删了，还是不行；用windows优化大师 清理垃圾文件，还是不行；用完美卸载；依然不行，晕了，难不成有要重装系统？于是到网上找找有没有解决方案，正好发现一个“Windows Installer 清理实用工具”听说可以达到我重装PS的目的，先试试了。
<span class="readmore"><a href="http://www.tisswb.com/archives/245.html" title="无法卸载和重装photoshop CS3 的解决办法" target="_blank">阅读全文——共664字</a></span>]]></description>
			<content:encoded><![CDATA[<div class="postbody">
<p>源地址：<a href="http://www.longworks.cn/article.asp?id=153">http://www.longworks.cn/article.asp?id=153</a> </p>
<p>前段时间由于系统以前没装Fireworks，在网上下了个FireworksCS3装上后，装上之后由于修改了PS的序列号，导致每次启动ps都弹出要 求输入序列号，今天30的期限终于到了，PS也用不了，郁闷，重装Adobe.CS3龙卷风3合1白金版，结果提示说:您一次只能安装一种 Adobe 产品，删了再装吧，但是，想卸载掉重新再装可没那么容易了，在控制面板下的添加和删除程序中点了半天也无法卸载,一点反应都没有，既然无法卸载然后就把整 个photoshop CS3安装文件给单独删除了,准备重新安装photoshop CS3.竟然还给我出现那个提示，用windows优化大师清理注册信息，不行；把注册表里的adobe信息全删了，还是不行；用windows优化大师 清理垃圾文件，还是不行；用完美卸载；依然不行，晕了，难不成有要重装系统？于是到网上找找有没有解决方案，正好发现一个“Windows Installer 清理实用工具”听说可以达到我重装PS的目的，先试试了。<br />
微软官方下载：<a href="http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe" target="_blank">http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe</a><br />
下后安装运行那个工具，把 Adobe setup和Adobe photoshop cs选中，然后再Remove，再运行PS安装文件，居然没提示了，安装也一切OK了， 这个工具真舒服，呵呵～～～</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/245.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visual Studio 2008 安装失败（“Web 创作组件”无法安装）的完整解决办法</title>
		<link>http://www.tisswb.com/archives/239.html</link>
		<comments>http://www.tisswb.com/archives/239.html#comments</comments>
		<pubDate>Mon, 09 Feb 2009 15:18:35 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[互联网]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=239</guid>
		<description><![CDATA[今天安装VS2008时出现了问题，怎么都无法安装成功。装了好几次都在“Visual Studio Web 创作组件（Visual Studio Authoring Component）”的安装的时候失败。当时很着急，难道千辛万苦下载的vs2008不能安装么？
于是俺就去“败毒”了一下，果然俺不是第一个出这种问题的人啊，网上一个哥们这么找原因和解决的：
因为除Visual Studio本身以外，VS安装过程中安装的其他附带安装的组件，基本上都是有单独安装包的。先找到Visual Studio Web 创作组件的独立安装包，试试单独安装能不能成功。
果然，在安装DVD的WCUWebDesignerCore文件夹中找到了“Visual Studio Web 创作组件”的安装程序。将其复制到硬盘上并解压缩，可以发现该组件使用的是Office 2007的安装方式，运行其中的setup.exe，出现与Office 2007相同的安装程序界面。单击“立即安装”，结果出现找不到office.zh-cn文件夹中文件的对话框，选择了安装程序所在的正确位置并确定，又再一次弹出同样的窗口，安装无法继续。
<span class="readmore"><a href="http://www.tisswb.com/archives/239.html" title="Visual Studio 2008 安装失败（“Web 创作组件”无法安装）的完整解决办法" target="_blank">阅读全文——共2015字</a></span>]]></description>
			<content:encoded><![CDATA[<p>今天安装VS2008时出现了问题，怎么都无法安装成功。装了好几次都在“Visual Studio Web 创作组件（Visual Studio Authoring Component）”的安装的时候失败。当时很着急，难道千辛万苦下载的vs2008不能安装么？</p>
<p>于是俺就去“败毒”了一下，果然俺不是第一个出这种问题的人啊，网上一个哥们这么找原因和解决的：</p>
<address>因为除Visual Studio本身以外，VS安装过程中安装的其他附带安装的组件，基本上都是有单独安装包的。先找到Visual Studio Web 创作组件的独立安装包，试试单独安装能不能成功。</address>
<address>果然，在安装DVD的WCUWebDesignerCore文件夹中找到了“Visual Studio Web 创作组件”的安装程序。将其复制到硬盘上并解压缩，可以发现该组件使用的是Office 2007的安装方式，运行其中的setup.exe，出现与Office 2007相同的安装程序界面。单击“立即安装”，结果出现找不到office.zh-cn文件夹中文件的对话框，选择了安装程序所在的正确位置并确定，又再一次弹出同样的窗口，安装无法继续。</address>
<address>仔细核对文件名，确定安装文件夹中的确有需要的文件，但为什么还是提示找不到呢？</address>
<address>既然这个组件使用Office 2007的安装方式，文件夹中也有office.zh-cn这个和Office 2007共有的组件，那会不会是因为Office 2007的问题，导致Visual Studio Web 创作组件无法安装呢？</address>
<address>在添加删除程序里面选择Office 2007，并单击”更改“按钮，在弹出的安装程序界面中，选择”修复“，并继续，果然不出所料，这时也出现了同样的找不到安装文件的对话框，基本确定是因为Office 2007的问题导致Visual Studio 安装失败。</p>
<p>这时想起来，在安装Office时，安装程序默认情况下会将安装文件缓存在系统分区的隐藏文件夹MSOCache中，安装完成后并不会将其删除。由于这个文件夹实在是太大了，平常用Office其实并不需要它，因此安装完Office之后就手动将其删除了，而在修复Office组件时，需要访问MSOCache文件夹中的安装文件，所以就出现了以上问题。以往的经验是，已删除MSOCache文件夹时，可以放入Office原来的安装光盘，即可顺利修复。 </p></address>
<address>于是直接放入Office 2007的安装光盘，在弹出寻找文件的对话框时，指向安装盘中office.zh-cn文件夹所在的位置（一般是光驱根目录），Office 2007被成功修复，这时再安装Visual Studio Web 创作组件，也顺利的安装上了：</p>
<p>接下来启动Visua Studio 2008安装程序，也顺利的安装，没有再遇到问题。安装完成后可以再次删除安装Visual Studio Web 创作组件时缓存下来的MSOCache文件夹（注意是隐藏文件夹）。</p></address>
<p> 俺照着做了一遍，重启系统后安装vs2008发现还是问题依旧啊，难道这哥们骗人？（其实不是，我跟他的情况不完全一样）于是俺就按照这哥们的查找错误的思路来了一遍，发现错误提示不一样，我的是：“2007 Microsoft Office system 不支持从预发布版的 2007 Microsoft Office system 升级。必须先卸载任何预发布版本的 2007 Microsoft Office system 产品及相关技术。请更正上面列出的问题，然后重新运行安装程序。”这个可怎么办呢？～～～</p>
<p>于是乎我又“败毒”了一次，果然有发现：</p>
<address>1、使用Windows Installer 清理实用工具，清理Microsoft Office system即可。<br />
Windows Installer 清理实用工具下载地址：<a href="http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe" target="_blank"><span style="color: #003366;">http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe</span></a><br />
（关于Windows Installer 清理实用工具说明详见：<a href="http://support.microsoft.com/kb/290301/" target="_blank"><span style="color: #003366;">http://support.microsoft.com/kb/290301/</span></a>）<br />
再进行office 2007的安装就不会再报错了。</address>
<address><span class="tpc_content">2、控制面板卸载所有2007版office的bate版。<br />
3、缺少相关安装文件（本人系统测试未见效果）<br />
原因是[Sysroot:]Program FilesCommon FilesMicrosoft SharedWeb Server Extensions40Bin目录下缺少：Fp4autl.dll、Fpencode.dll 和 Fp4awel.dll 几个文件，从XP安装盘中释放出就可以了。</span></address>
<p> 由于俺比较懒，找了其中最简单的一个办法，第二种，因为我之前确实安装过一个转换pdf的office的beta软件。在<a href="http://support.microsoft.com/kb/927222"><span style="color: #366900;">这里</span></a>详细的罗列了原因以及解决的办法，看到了原因我就发现有门道了，先卸载了那个beta软件，继续安装vs2008，果然o啦～</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/239.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>路由器配置MSN无法登陆的解决方法</title>
		<link>http://www.tisswb.com/archives/237.html</link>
		<comments>http://www.tisswb.com/archives/237.html#comments</comments>
		<pubDate>Tue, 03 Feb 2009 06:42:54 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[网络技术]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=237</guid>
		<description><![CDATA[安装路由器以后经常在比较多的时候会出现访问不了微软的网站或者登陆不了MSN,还有的PING都PING不通,这个问题其实很简单,但是想到它却有点难.只要关心一下MTU值的问题就能解决这个问题了!
一般默认的MTU值是不影响正常的数据通讯的,但是在ADSL的网络环境下,要设置MTU值为1492或1480,而MSN在数据传输的时候识别的MTU值是1450.所以才会出现登陆不了,还会造成网络断线的情况发生.
解决这一问题,只要在路由器的内网端口上设置一个MTU值就可以了!详细步骤如下:
登录路由器-〉网络参数-〉WAN口设置-〉在PPPoE高级设置里,把数据包MTU 1492或1480改成1450.重启路由器就OK了。
附注：MTU扫盲
1、什么情况下需要改MTU？
　　如果您的动态域名网站不能被正常访问，很难连接，连接上也非常慢，请试试把DirectSend设为&#8221;总是关闭&#8221;。如果关闭后可以正常访问，这种情况就需要修改MTU。如果您的网站连接正常，只是下载速度慢，就不必改MTU了。请跳过这一节。
<span class="readmore"><a href="http://www.tisswb.com/archives/237.html" title="路由器配置MSN无法登陆的解决方法" target="_blank">阅读全文——共1388字</a></span>]]></description>
			<content:encoded><![CDATA[<p>安装路由器以后经常在比较多的时候会出现访问不了微软的网站或者登陆不了MSN,还有的PING都PING不通,这个问题其实很简单,但是想到它却有点难.只要关心一下MTU值的问题就能解决这个问题了!</p>
<p>一般默认的MTU值是不影响正常的数据通讯的,但是在ADSL的网络环境下,要设置MTU值为1492或1480,而MSN在数据传输的时候识别的MTU值是1450.所以才会出现登陆不了,还会造成网络断线的情况发生.<br />
解决这一问题,只要在路由器的内网端口上设置一个MTU值就可以了!详细步骤如下:</p>
<p>登录路由器-〉网络参数-〉WAN口设置-〉在PPPoE高级设置里,把数据包MTU 1492或1480改成1450.重启路由器就OK了。</p>
<p>附注：MTU扫盲</p>
<p>1、什么情况下需要改MTU？</p>
<p>　　如果您的动态域名网站不能被正常访问，很难连接，连接上也非常慢，请试试把DirectSend设为&#8221;总是关闭&#8221;。如果关闭后可以正常访问，这种情况就需要修改MTU。如果您的网站连接正常，只是下载速度慢，就不必改MTU了。请跳过这一节。<br />
2、什么是MTU？</p>
<p>　　MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。<br />
　　大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大，大的数据包就会被拆开来传送，这样会产生很多数据包碎片，增加丢包率，降低网络速度。把本机的MTU设成比网关的MTU小或相同，就可以减少丢包。<br />
3、如何检测网关的MTU？</p>
<p>　　在本机打开dos窗口，执行：ping -f -l 1472 192.168.0.1<br />
　　其中192.168.0.1是网关IP地址，1472是数据包的长度。请注意，上面的参数是&#8221;-l&#8221;（小写的L），而不是&#8221;-1&#8243;。<br />
　　如果能ping通，表示数据包不需要拆包，可以通过网关发送出去。<br />
　　如果出现：Packet needs to be fragmented but DF set.<br />
　　表示数据包需要拆开来发送。此时，减少数据包长度，再执行上面的ping命令。从1400到1472之间多试几次，就能找到合适的数据包长度了。把数据包长度加上数据包头28字节，就得到MTU的值。</p>
<p>　　如果检测到网关的MTU值是1500，不需要修改。<br />
　　如果网关有防火墙ping不通，可以试试直接把MTU设为1400。<br />
4、如何修改本机的MTU？</p>
<p>　　修改方法如下：<br />
（1）、运行regedit<br />
（2）、浏览到：HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces<br />
（3）、Interfaces下有多个子项，每个子项对应一个网卡。请按如下方法选择网卡：</p>
<p>　　（a）确定本机用来连接Internet的网卡或拨号连接的IP，如192.168.0.19；<br />
　　（b）用鼠标点击Interfaces上的子项，查看键值列表中的IPAddress项；<br />
　　（c）如果IPAddress的键值与（a）中的IP相同，即192.168.0.19，则该子项就是要找的网卡。<br />
（4）、进入该子项，在右边的窗口里按鼠标右键，选择&#8221;新建&#8221;-&gt;&#8221;双字节值&#8221;，输入名称&#8221;MTU&#8221;，按回车。再用鼠标双击&#8221;MTU&#8221;，弹出修改窗口：</p>
<p>　　填入MTU的值。填写前请先把基数设为十进制。<br />
　　设置好后，需要重启机器才能生效。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/237.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>迅雷5去广告方法（改进版）</title>
		<link>http://www.tisswb.com/archives/203.html</link>
		<comments>http://www.tisswb.com/archives/203.html#comments</comments>
		<pubDate>Wed, 12 Nov 2008 07:43:52 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=203</guid>
		<description><![CDATA[一 需要用到的软件
① 记事本操作系统自带
② Restorator2007一个小巧的补丁制作软件，用来编辑DLL文件的
去这里搜去http://www.fixdown.com/ 
二 原装最好,去下载个原装正版的迅雷
官方网址下载最安全http://www.xunlei.com/
什么去广告版！优化版！很可能有木马，漏洞！
而我是在官方原版上修改（其实多是删，很少修改，改也是改INI文件，DAT文
件，CFG文件TXT文件，这些本来就是拿来修改的，很少动DLL或EXE文件，
就动1个DLL文件）改错了最多迅雷启动不了，不会有其他影响
<span class="readmore"><a href="http://www.tisswb.com/archives/203.html" title="迅雷5去广告方法（改进版）" target="_blank">阅读全文——共2522字</a></span>]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: medium;"><span style="color: #ff0000;">一 需要用到的软件</span><br />
</span><span style="font-size: x-small;">① 记事本操作系统自带</p>
<p>② Restorator2007一个小巧的补丁制作软件，用来编辑DLL文件的<br />
去这里搜去<a href="http://www.fixdown.com/" target="_blank"><span style="color: #2f5fa1;">http://www.fixdown.com/</span></a> </span></p>
<p><span style="font-size: medium;"><span style="color: #ff0000;">二 原装最好,去下载个原装正版的迅雷</span></span><br />
<span style="font-size: x-small;">官方网址下载最安全<a href="http://www.xunlei.com/" target="_blank"><span style="color: #2f5fa1;">http://www.xunlei.com/</span></a><br />
什么去广告版！优化版！很可能有木马，漏洞！<br />
而我是在官方原版上修改（其实多是删，很少修改，改也是改INI文件，DAT文<br />
件，CFG文件TXT文件，这些本来就是拿来修改的，很少动DLL或EXE文件，<br />
就动1个DLL文件）改错了最多迅雷启动不了，不会有其他影响</span></p>
<p><span style="font-size: medium;"><span style="color: #ff0000;">三 这是转自网友的，也许大家都知道了</span></span><br />
<span style="font-size: x-small;">确定已安装迅雷，先运行一便迅雷（！！非常重要！！）<br />
因为才安装后不运行的话，迅雷有很多文件不会被生成，导致你找不到<br />
文件修改——————在迅雷安装目录“Program”文件夹下，才安装时<br />
不会有以下文件：<br />
gui.cfg<br />
download.cfg<br />
xldc.cfg<br />
streammedia.cfg<br />
al.cfg<br />
error.ini<br />
BugReport.ini<br />
cid_store.dat<br />
xldc_stat.dat<br />
bd.dat<br />
xlhcc.dat<br />
error.dat<br />
stat.dat<br />
record.bin</p>
<p>而且这些是用户配置文件，就是第一次运行才会生成，每台机子，每个版本的<br />
文件有1些不同，有很多人迅雷，启动不了，是换版本时，没有把原来软件的这些文<br />
件删掉，导致迅雷启动不了</span></p>
<p><span style="font-size: medium;"><span style="color: #ff0000;">① 避免迅雷桌面新闻打扰</span></span></p>
<p><span style="font-size: x-small;">第一步：</span></p>
<p>打开您的“迅雷5”选择顶部的“工具”按钮，在延伸的菜单中选择“配置”。<br />
<img onclick="if(this.width&gt;=800) window.open('http://img.article.pchome.net/00/23/30/21/12.jpg');" src="http://img.article.pchome.net/00/23/30/21/12.jpg" border="0" alt="" /></p>
<p><span style="font-size: x-small;">第二步：</span></p>
<p>在打开的窗口中选择“高级”标签，并且取消“显示迅雷资讯”前面的“钩”点击“确定”保存您的修改，您下一次打开“迅雷5”的时候就不会再显示“桌面新闻”了。<br />
<img onclick="if(this.width&gt;=800) window.open('http://img.article.pchome.net/00/23/30/21/13.jpg');" src="http://img.article.pchome.net/00/23/30/21/13.jpg" border="0" alt="" /></p>
<p><span style="font-size: medium;"><span style="color: #ff0000;">② 头顶小广告</span> </span></p>
<p><span style="font-size: x-small;">关闭迅雷后，在迅雷安装目录里打开“Program”文件夹，找到“gui.cfg”文<br />
件，选择用记事本打开，找到以下四个单词：<br />
ADServer=<br />
PVServer=<br />
ADCountingServer=<br />
HomePage=<br />
将“=”后面的网址都删掉，等号和等号前面的要保留！<br />
如果还有其他网址，一样删掉<br />
保存文件！右键点击改动后的“gui.cfg”，选属性，改为“只读 ”<br />
在迅雷安装目录里打开“Program”文件夹<br />
在Ad文件夹里的除了002gif、default_main.swf、default_new.swf、main.gif、new.gif这5个文件不删，其余一律删除，广告已经没有了</span></p>
<p><span style="font-size: medium;"><span style="color: #ff0000;">③ 右侧的热门推荐 </span></span></p>
<p><span style="font-size: x-small;">在迅雷安装目录里打开“Profiles”文件夹，<br />
找到“UserConfig.ini”文件，用记事本打开，<br />
找到“[Splitter_1]”，<br />
在其下方找到“Pane1_Hide=0”,将0改为1。保存文件。</p>
<p>进到迅雷目录下Components文件夹里， 找到Tips文件夹<br />
删除Tips文件夹下的所有文件<br />
右侧的热门推荐已经没有了</p>
<p>迅雷安装目录下Components文件夹里<br />
再进Community文件夹<br />
找到XLCommunity.dll文件,<br />
用 restorator软件 打开它；删除dialog下的1076文件，</p>
<p>如果找不到1076文件，或1076文件删处后“社区互动”还在<br />
（就是删除下载面版那些烦人的“发布”“收藏”还有”雷友信息“……）<br />
就用记事本打开XLCommunity.dll文件<br />
必须用记事本，不要用其他16进制的文本编辑软件<br />
有很多乱码，不管，用查找菜单，查找client_down就行<br />
找到网址“<a href="http://recommend.xunlei.com/client_down.html" target="_blank"><span style="color: #2f5fa1;">http://recommend.xunlei.com/client_down.html</span></a>”把它删除，<br />
不要删除其他东西，包括空格<br />
保存在重新打开迅雷就发现社区互动没了</span></p>
<p><span style="font-size: medium;"><span style="color: #ff0000;">④ 去除迅雷的搜索插件</span></span></p>
<p><span style="font-size: x-small;">迅雷目录下Components文件夹里<br />
找到Search文件夹并删除！<br />
补充，顺便找到P4PClient文件夹，删除里面的1个DLL文件，<br />
他是和右侧的热门推荐有关的，不想要就全部删除！ </span></p>
<p><span style="font-size: medium;"><span style="color: #ff0000;">四 高级用户的BT干净修改手册</span></span></p>
<p><span style="font-size: x-small;">1 删除雷友社区的登陆菜单，删除播放插件<br />
[size=2]最简单的，进入迅雷目录下Components文件夹里<br />
看到DownAndPlay文件夹，看名字play就知道是播放插件<br />
里面都是*Player文件，因为还有些视频解码器（有了专业的暴风音影，还要这个干毛）<br />
现在就要卸载这些DLL文件或AX文件，用操作系统的regsvr32命令来卸载<br />
最简单就是在DOS窗口里卸载，<br />
在 “开始——运行——cmd” 打开DOS在DOS下进到迅雷目录下Components文件夹里的DownAndPlay文件夹<br />
如：X:回车<br />
cd空格X:Program FilesThunder NetworkThunderComponentsDownAndPlay回车<br />
然后再输入：regsvr32空格/u空格DownAndPlay.dll空格DapPlayer.dll回车<br />
可以把所有文件+进去每2个文件必须以空格分开<br />
进入迅雷目录下Components文件夹里<br />
同理KanKan文件夹也是播放插件”迅雷看看“，用同样方法先卸载<br />
最后完了，就可以把DownAndPlay和KanKan文件夹删除 </span></p>
<p>2 删除多余的雷友社区图标，表情，迅雷界面和不要的插件<br />
<span style="font-size: x-small;">进入迅雷目录下Components文件夹里再进Community文件夹找到faces文件夹<br />
表情全部在里面，全删除<br />
进入迅雷目录下skins文件夹里<br />
找到2个文件夹迅雷界面全部在里面，只留一个剩下，全删除！<br />
进入迅雷目录下Plugins文件夹里<br />
同上先用regsvr32命令来卸载，文件夹里的DLL文件[size=2]</span><br />
<span style="font-size: medium;"><span style="color: #ff0000;">补充：</span></span><br />
<span style="font-size: x-small;">删除迅雷自动升级，下载补丁<br />
进入迅雷安装目录“Program”文件夹下 找到 Update文件夹<br />
找不到就新建1个Update文件夹<br />
（我是上着网安装的，装完打开迅雷它就用10秒自动下了组件！）<br />
进入Update文件夹找到Update.dat——就是它，把它属性改为只读！<br />
再把其他补丁删掉！！！以后就不会自动下载组件</span><br />
<span style="font-size: medium;"><span style="color: #ff0000;">（注：修改时要在迅雷完全退出的情况下进行）</span></span></p>
<p><span style="font-size: medium;">经过以上的修改，迅雷的广告就几乎不见了！如果你嫌麻烦，那也好办，网络上有许多去广告版的下载，但都是迅雷较低的版本或有木马、漏洞，想体验迅雷新版本又不想看到广告的就按上面的操作吧！</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/203.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vba取得当前运行网页url地址的3种方法</title>
		<link>http://www.tisswb.com/archives/181.html</link>
		<comments>http://www.tisswb.com/archives/181.html#comments</comments>
		<pubDate>Thu, 30 Oct 2008 18:48:11 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[vba编程]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=181</guid>
		<description><![CDATA[是用vba获得当前网页的url的用处有很多，比如验证页面是否已经被跳转等。这里介绍3种vba获取当前网页url的实例，供大家参考。
方法一：
Sub test()
AppActivate &#8220;Internet Explorer&#8221;
SendKeys &#8220;%D^C%{TAB}&#8221;
ActiveSheet.Paste
End Sub
方法二：
本范例需要引用 Microsoft Internet Controls
&#8216;以下程式
<span class="readmore"><a href="http://www.tisswb.com/archives/181.html" title="vba取得当前运行网页url地址的3种方法" target="_blank">阅读全文——共807字</a></span>]]></description>
			<content:encoded><![CDATA[<p>是用vba获得当前网页的url的用处有很多，比如验证页面是否已经被跳转等。这里介绍3种vba获取当前网页url的实例，供大家参考。</p>
<p><strong>方法一：</strong></p>
<p>Sub test()<br />
AppActivate &#8220;Internet Explorer&#8221;<br />
SendKeys &#8220;%D^C%{TAB}&#8221;<br />
ActiveSheet.Paste<br />
End Sub</p>
<p><strong>方法二：</strong></p>
<p>本范例需要引用 Microsoft Internet Controls</p>
<p>&#8216;以下程式<br />
Private Declare Function SetForegroundWindow Lib &#8220;user32&#8243; _<br />
        (ByVal hwnd As Long) As Long                              </p>
<p>Sub IEShell()<br />
    Dim objIE As IWebBrowser2<br />
    Dim objSW As IShellWindows<br />
    Set objSW = New SHDocVw.ShellWindows<br />
    If objSW.Count = 0 Then MsgBox &#8220;未开启InternetExplorer 应用程式&#8221;: Exit Sub<br />
    For Each objIE In objSW<br />
        aaa = Dir(objIE.FullName)<br />
        MsgBox objIE.Name &amp; &#8220;目前开启的网址:&#8221; &amp; objIE.LocationURL<br />
    Next objIE<br />
End Sub</p>
<p><strong>方法三：</strong></p>
<p>一个更简单的方法，一并发布</p>
<p>Sub IEShell()<br />
    Dim Obj As Object<br />
    On Error Resume Next<br />
    For Each Obj In CreateObject(&#8220;Shell.Application&#8221;).Windows<br />
        If TypeName(Obj.document) = &#8220;HTMLDocument&#8221; Then<br />
            MsgBox Obj.Name &amp; &#8220;当前的url是:&#8221; &amp; Obj.LocationURL<br />
        End If<br />
    Next<br />
End Sub</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/181.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用Excel VBA获取并分析网页数据</title>
		<link>http://www.tisswb.com/archives/179.html</link>
		<comments>http://www.tisswb.com/archives/179.html#comments</comments>
		<pubDate>Thu, 30 Oct 2008 16:57:24 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[vba编程]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=179</guid>
		<description><![CDATA[主要用到了  Microsoft HTML Object Library
用createDocumentFromUrl这个方法可以下载一个网页的内容并且得到一个HTMLDocument对象，
利用HTMLDocument的一些属性就很容易把网页内容分析出来。
例如用 outerHTML  可以得到HTML文本
用 links 可以得到网页里面所有的链接
注：当时没有想到用正则表达式，实现的方法很笨。其实用正则表达式分析网页内容非常方便，在以后我会有实例。
下面是代码：
   Option Explicit

Private mintSubCat       As Integer
<span class="readmore"><a href="http://www.tisswb.com/archives/179.html" title="用Excel VBA获取并分析网页数据" target="_blank">阅读全文——共13280字</a></span>]]></description>
			<content:encoded><![CDATA[<p>主要用到了  Microsoft HTML Object Library<br />
用createDocumentFromUrl这个方法可以下载一个网页的内容并且得到一个HTMLDocument对象，<br />
利用HTMLDocument的一些属性就很容易把网页内容分析出来。<br />
例如用 outerHTML  可以得到HTML文本<br />
用 links 可以得到网页里面所有的链接<br />
注：当时没有想到用正则表达式，实现的方法很笨。其实用正则表达式分析网页内容非常方便，在以后我会有实例。</p>
<p>下面是代码：</p>
<p><span style="color: #0000ff;">   Option</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Explicit</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Private</span><span style="color: #000000;"> mintSubCat       </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Private</span><span style="color: #000000;"> mintRowPages     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Private</span><span style="color: #000000;"> mintRowPrdct     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Sub</span><span style="color: #000000;"> GetCategories()<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strUrl          </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml1        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml2        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strHtml         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objLink         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLLinkElement<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objDic          </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> Dictionary<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> intIndex        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">On</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Error</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Resume</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    mintSubCat </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    mintRowPages </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    mintRowPrdct </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strUrl </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">http://www.hitachi-powertools.com.au/Categories.aspx</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml1.createDocumentFromUrl(strUrl, vbNullString)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">While</span><span style="color: #000000;"> objHtml2.readyState </span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">complete</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">And objHtml2.readyState &lt;&gt; &#8221;interactive&#8221;</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">        DoEvents<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Wend</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strHtml </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml2.documentElement.outerHTML<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    WriteStrToFile strHtml, ThisWorkbook.Path </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">htmlCategories.html</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">UTF-8</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Each</span><span style="color: #000000;"> objLink In objHtml2.links<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">Debug.Print objLink.toString</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">        </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Left</span><span style="color: #000000;">(objLink.toString, </span><span style="color: #000000;">65</span><span style="color: #000000;">) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">http://www.hitachi-powertools.com.au/Subcategories.aspx?Category=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Not</span><span style="color: #000000;"> objDic.Exists(objLink.toString) </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                objDic.Add objLink.toString, objLink.toString<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> intIndex </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> objDic.Count<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        Sheet1.Cells(intIndex, </span><span style="color: #000000;">1</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> objDic.Items(intIndex </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">Call</span><span style="color: #000000;"> GetSubCategories(objDic.Items(intIndex </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">))<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"> intIndex<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objDic.RemoveAll<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objDic </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml2.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml1.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objLink </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Sub</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Sub</span><span style="color: #000000;"> GetSubCategories(ByVal strUrl </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml1        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml2        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strHtml         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strCategory     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objLink         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLLinkElement<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objDic          </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> Dictionary<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> intIndex        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(</span><span style="color: #0000ff;">Mid</span><span style="color: #000000;">(strUrl, </span><span style="color: #000000;">38</span><span style="color: #000000;">), </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">?</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(strCategory, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">/</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(strCategory, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml1.createDocumentFromUrl(strUrl, vbNullString)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">While</span><span style="color: #000000;"> objHtml2.readyState </span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">complete</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        DoEvents<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Wend</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strHtml </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml2.documentElement.outerHTML<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    WriteStrToFile strHtml, ThisWorkbook.Path </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">html</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> strCategory </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">.html</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">UTF-8</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Each</span><span style="color: #000000;"> objLink In objHtml2.links<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">Debug.Print objLink.toString</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">        </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #0000ff;">Left</span><span style="color: #000000;">(objLink.toString, </span><span style="color: #000000;">65</span><span style="color: #000000;">)) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">http://www.hitachi-powertools.com.au/Subcategories.aspx?CATEGORY=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">) _<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">And</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;SUBCATEGORY=&amp;PAGE=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> _<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">And</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;SUBCATEGORY=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Not</span><span style="color: #000000;"> objDic.Exists(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString)) </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                objDic.Add </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), objLink.toString<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> intIndex </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> objDic.Count<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        Sheet2.Cells(mintSubCat, </span><span style="color: #000000;">1</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> objDic.Items(intIndex </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        mintSubCat </span><span style="color: #000000;">=</span><span style="color: #000000;"> mintSubCat </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">Call</span><span style="color: #000000;"> GetPages(objDic.Items(intIndex </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">))<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"> intIndex<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objDic.RemoveAll<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objDic </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml2.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml1.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objLink </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Sub</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Sub</span><span style="color: #000000;"> GetPages(ByVal strUrl </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml1        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml2        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strHtml         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strCategory     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objLink         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLLinkElement<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objDic          </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> Dictionary<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> intIndex        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(</span><span style="color: #0000ff;">Mid</span><span style="color: #000000;">(strUrl, </span><span style="color: #000000;">38</span><span style="color: #000000;">), </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">?</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(strCategory, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">/</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(strCategory, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml1.createDocumentFromUrl(strUrl, vbNullString)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">While</span><span style="color: #000000;"> objHtml2.readyState </span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">complete</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        DoEvents<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Wend</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strHtml </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml2.documentElement.outerHTML<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    WriteStrToFile strHtml, ThisWorkbook.Path </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">html</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> strCategory </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">.html</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">UTF-8</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Each</span><span style="color: #000000;"> objLink In objHtml2.links<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">Debug.Print objLink.toString</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />&#8216;</span><span style="color: #008000;">        If Left(objLink.toString, 65) = &#8221;http://www.hitachi-powertools.com.au/Subcategories.aspx?CATEGORY=&#8221; _</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />&#8216;</span><span style="color: #008000;">            And InStr(objLink.toString, &#8221;&amp;SUBCATEGORY=&amp;PAGE=&#8221;) &gt; 0 Then</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">        </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #0000ff;">Left</span><span style="color: #000000;">(objLink.toString, </span><span style="color: #000000;">65</span><span style="color: #000000;">)) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">http://www.hitachi-powertools.com.au/Subcategories.aspx?CATEGORY=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">) _<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">And</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;SUBCATEGORY=&amp;PAGE=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> _<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">And</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;SUBCATEGORY=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> _<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">And</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;PAGE=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Not</span><span style="color: #000000;"> objDic.Exists(objLink.toString) </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                objDic.Add objLink.toString, objLink.toString<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> intIndex </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> objDic.Count<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        Sheet3.Cells(mintRowPages, </span><span style="color: #000000;">1</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> objDic.Items(intIndex </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        mintRowPages </span><span style="color: #000000;">=</span><span style="color: #000000;"> mintRowPages </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">Call</span><span style="color: #000000;"> GetProductUrls(objDic.Items(intIndex </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">))<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"> intIndex<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objDic.RemoveAll<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objDic </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml2.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml1.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objLink </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Sub</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Sub</span><span style="color: #000000;"> GetProductUrls(ByVal strUrl </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml1        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml2        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strHtml         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strCategory     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objLink         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLLinkElement<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objDic          </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> Dictionary<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> intIndex        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(</span><span style="color: #0000ff;">Mid</span><span style="color: #000000;">(strUrl, </span><span style="color: #000000;">38</span><span style="color: #000000;">), </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">?</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(strCategory, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">/</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(strCategory, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml1.createDocumentFromUrl(strUrl, vbNullString)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">While</span><span style="color: #000000;"> objHtml2.readyState </span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">complete</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        DoEvents<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Wend</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strHtml </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml2.documentElement.outerHTML<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    WriteStrToFile strHtml, ThisWorkbook.Path </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">html</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> strCategory </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">.html</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">UTF-8</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Each</span><span style="color: #000000;"> objLink In objHtml2.links<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">        Debug.Print objLink.toString</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">        </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #0000ff;">Left</span><span style="color: #000000;">(objLink.toString, </span><span style="color: #000000;">66</span><span style="color: #000000;">)) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">http://www.hitachi-powertools.com.au/ProductDetails.aspx?Category=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">) _<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">And</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;Subcategory=&amp;Product=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> _<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">And</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;SUBCATEGORY=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> _<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">And</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;Product=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Not</span><span style="color: #000000;"> objDic.Exists(</span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString)) </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                objDic.Add </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objLink.toString), objLink.toString<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> intIndex </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> objDic.Count<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        Sheet4.Cells(mintRowPrdct, </span><span style="color: #000000;">1</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> objDic.Items(intIndex </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">Call</span><span style="color: #000000;"> GetProductDesc(objDic.Items(intIndex </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">))<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        mintRowPrdct </span><span style="color: #000000;">=</span><span style="color: #000000;"> mintRowPrdct </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">ThisWorkbook.Save</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"> intIndex<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objDic.RemoveAll<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objDic </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml2.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml1.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objLink </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Sub</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /> </span><span style="color: #0000ff;">Sub</span><span style="color: #000000;"> GetProductDesc(ByVal strUrl </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml1        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtml2        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLDocument<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strHtml         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strCategory     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objLink         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLLinkElement<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> intIndex        </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strCat1         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strCat2         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> lngS1           </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Long</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> lngS2           </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Long</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> lngS3           </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Long</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strTmp          </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strProCode      </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strProName      </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strDesc         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strSpec()       </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(</span><span style="color: #0000ff;">Mid</span><span style="color: #000000;">(strUrl, </span><span style="color: #000000;">38</span><span style="color: #000000;">), </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">?</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(strCategory, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">/</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCategory </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(strCategory, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml1.createDocumentFromUrl(strUrl, vbNullString)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">While</span><span style="color: #000000;"> objHtml2.readyState </span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">complete</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        DoEvents<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Wend</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strHtml </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtml2.documentElement.outerHTML<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    WriteStrToFile strHtml, ThisWorkbook.Path </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">html</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> strCategory </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">.html</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">UTF-8</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strTmp </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(strUrl)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    lngS1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(strTmp, </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">Category=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">9</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    lngS2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(strTmp, </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;Subcategory=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">13</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    lngS3 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(strTmp, </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&amp;Product=</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">9</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCat1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Mid</span><span style="color: #000000;">(strUrl, lngS1, lngS2 </span><span style="color: #000000;">-</span><span style="color: #000000;"> lngS1 </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">13</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strCat2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Mid</span><span style="color: #000000;">(strUrl, lngS2, lngS3 </span><span style="color: #000000;">-</span><span style="color: #000000;"> lngS2 </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">9</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strProCode </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Mid</span><span style="color: #000000;">(strUrl, lngS3)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strTmp </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(strHtml)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    lngS1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(strTmp, </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&lt;SPAN style=&#8221;"FONT-WEIGHT: bold; FONT-SIZE: 10pt; COLOR: #696969&#8243;&#8221;&gt;</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">)) </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">65</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    lngS2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">InStr</span><span style="color: #000000;">(lngS1, strTmp, </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">&lt;/span&gt;</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">))<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strProName </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Trim</span><span style="color: #000000;">(</span><span style="color: #0000ff;">Mid</span><span style="color: #000000;">(strHtml, lngS1, lngS2 </span><span style="color: #000000;">-</span><span style="color: #000000;"> lngS1))<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strDesc </span><span style="color: #000000;">=</span><span style="color: #000000;"> strGetDesc(objHtml2)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    GetSpec objHtml2, strSpec<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    Sheet5.Cells(mintRowPrdct, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">B</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> strCat1 </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">|</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> strCat2<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    Sheet5.Cells(mintRowPrdct, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">C</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">HITACHI</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    Sheet5.Cells(mintRowPrdct, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">D</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> strProName<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    Sheet5.Cells(mintRowPrdct, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">E</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> strProCode<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    Sheet5.Cells(mintRowPrdct, </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">J</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> strDesc<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> intCol      </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    Sheet6.Cells(mintRowPrdct, </span><span style="color: #000000;">1</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> strProCode<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    Sheet7.Cells(mintRowPrdct, </span><span style="color: #000000;">1</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> strProCode<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UBound</span><span style="color: #000000;">(strSpec, </span><span style="color: #000000;">1</span><span style="color: #000000;">) </span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> intCol </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UBound</span><span style="color: #000000;">(strSpec, </span><span style="color: #000000;">1</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            Sheet6.Cells(mintRowPrdct, </span><span style="color: #000000;">2</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> intCol).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> strSpec(intCol, </span><span style="color: #000000;">1</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            Sheet7.Cells(mintRowPrdct, </span><span style="color: #000000;">2</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> intCol).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> strSpec(intCol, </span><span style="color: #000000;">2</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"> intCol<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml2.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objHtml1.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtml1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objLink </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Sub</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Function</span><span style="color: #000000;"> strGetDesc(ByRef objHtml </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLDocument) </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtmlItem     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Object</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtmlLastItem </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Object</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtmlTable    </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLTable<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Each</span><span style="color: #000000;"> objHtmlItem In objHtml.all<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">TypeName</span><span style="color: #000000;">(objHtmlItem) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">HTMLTable</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Not</span><span style="color: #000000;"> objHtmlLastItem </span><span style="color: #0000ff;">Is</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objHtmlLastItem.innerText) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">Description:</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">) </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtmlTable </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtmlItem<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                    </span><span style="color: #0000ff;">Exit</span><span style="color: #000000;"> </span><span style="color: #0000ff;">For</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">TypeName</span><span style="color: #000000;">(objHtmlItem) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">HTMLSpanElement</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtmlLastItem </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtmlItem<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            DoEvents<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    strGetDesc </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Replace</span><span style="color: #000000;">(objHtmlTable.innerText, vbCrLf, vbLf)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtmlItem </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtmlTable </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtmlLastItem </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Function</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Sub</span><span style="color: #000000;"> GetSpec(ByRef objHtml </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLDocument, ByRef strSpec() </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtmlItem     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Object</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> blnFlag         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Boolean</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objHtmlTable    </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> HTMLTable<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> intRow          </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    blnFlag </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">False</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Each</span><span style="color: #000000;"> objHtmlItem In objHtml.all<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(objHtmlItem.innerText) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">UCase</span><span style="color: #000000;">(</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">Specification:</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">) </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            blnFlag </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">True</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> blnFlag </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">TypeName</span><span style="color: #000000;">(objHtmlItem) </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">HTMLTable</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtmlTable </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtmlItem<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;">Exit</span><span style="color: #000000;"> </span><span style="color: #0000ff;">For</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Not</span><span style="color: #000000;"> objHtmlTable </span><span style="color: #0000ff;">Is</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> objHtmlTable.Cells.Length </span><span style="color: #000000;">&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">ReDim</span><span style="color: #000000;"> strSpec(</span><span style="color: #000000;">1</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> objHtmlTable.Cells.Length </span><span style="color: #000000;">/</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;">, </span><span style="color: #000000;">1</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> intRow </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> objHtmlTable.Cells.Length </span><span style="color: #000000;">/</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                strSpec(intRow, </span><span style="color: #000000;">1</span><span style="color: #000000;">) </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtmlTable.Cells(intRow </span><span style="color: #000000;">*</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;">).innerText<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                strSpec(intRow, </span><span style="color: #000000;">2</span><span style="color: #000000;">) </span><span style="color: #000000;">=</span><span style="color: #000000;"> objHtmlTable.Cells(intRow </span><span style="color: #000000;">*</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">).innerText<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"> intRow<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">Else</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">ReDim</span><span style="color: #000000;"> strSpec(</span><span style="color: #000000;">0</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">, </span><span style="color: #000000;">0</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Else</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">ReDim</span><span style="color: #000000;"> strSpec(</span><span style="color: #000000;">0</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">, </span><span style="color: #000000;">0</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtmlItem </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objHtmlTable </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Sub</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Private</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Sub</span><span style="color: #000000;"> WriteStrToFile(ByVal strText </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">, ByVal strPath </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">, ByVal strCharSet </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">Dim objFso          As New FileSystemObject</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objText         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> ADODB.Stream<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.Type </span><span style="color: #000000;">=</span><span style="color: #000000;"> adTypeText<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.Open<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.Charset </span><span style="color: #000000;">=</span><span style="color: #000000;"> strCharSet<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.WriteText strText, adWriteChar<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.SaveToFile strPath, adSaveCreateOverWrite<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objText </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Sub</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Function</span><span style="color: #000000;"> ReadStrFromFile(ByVal strPath </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">, ByVal strCharSet </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;">) </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #008000;">&#8216;</span><span style="color: #008000;">Dim objFso          As New FileSystemObject</span><span style="color: #008000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #000000;">    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> objText         </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">New</span><span style="color: #000000;"> ADODB.Stream<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.Type </span><span style="color: #000000;">=</span><span style="color: #000000;"> adTypeText<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.Open<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.Charset </span><span style="color: #000000;">=</span><span style="color: #000000;"> strCharSet<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.LoadFromFile strPath<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    ReadStrFromFile </span><span style="color: #000000;">=</span><span style="color: #000000;"> objText.ReadText<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    objText.Close<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Set</span><span style="color: #000000;"> objText </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Nothing</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Function</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">Public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Sub</span><span style="color: #000000;"> com1()<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> intRow      </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> intCol      </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Integer</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strTmp1     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Dim</span><span style="color: #000000;"> strTmp2     </span><span style="color: #0000ff;">As</span><span style="color: #000000;"> </span><span style="color: #0000ff;">String</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> intRow </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> </span><span style="color: #000000;">177</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        strTmp2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">For</span><span style="color: #000000;"> intCol </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">3</span><span style="color: #000000;"> </span><span style="color: #0000ff;">To</span><span style="color: #000000;"> </span><span style="color: #000000;">15</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            strTmp1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Trim</span><span style="color: #000000;">(Sheet6.Cells(intRow, intCol) </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> | </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> Sheet7.Cells(intRow, intCol))<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> strTmp1 </span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;</span><span style="color: #000000;">|</span><span style="color: #000000;">&#8220;</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;">If</span><span style="color: #000000;"> strTmp2 </span><span style="color: #000000;">&lt;&gt;</span><span style="color: #000000;"> </span><span style="color: #000000;">&#8220;&#8221;</span><span style="color: #000000;"> </span><span style="color: #0000ff;">Then</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                    strTmp2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> strTmp2 </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> vbLf </span><span style="color: #000000;">&amp;</span><span style="color: #000000;"> strTmp1<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;">Else</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                    strTmp2 </span><span style="color: #000000;">=</span><span style="color: #000000;"> strTmp1<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />                <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            </span><span style="color: #0000ff;">End</span><span style="color: #000000;"> </span><span style="color: #0000ff;">If</span><span style="color: #000000;"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            Sheet4.Cells(intRow, </span><span style="color: #000000;">2</span><span style="color: #000000;">).Value </span><span style="color: #000000;">=</span><span style="color: #000000;"> strTmp2<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />            <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"> intCol<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />        <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" />    </span><span style="color: #0000ff;">Next</span><span style="color: #000000;"> intRow<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color: #0000ff;">End Sub</span><span style="color: #000000;"><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/179.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VBA自动登陆163信箱</title>
		<link>http://www.tisswb.com/archives/177.html</link>
		<comments>http://www.tisswb.com/archives/177.html#comments</comments>
		<pubDate>Tue, 28 Oct 2008 09:25:26 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[vba编程]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=177</guid>
		<description><![CDATA[ Sub Goto163()
With CreateObject(&#8220;InternetExplorer.Application&#8221;)
.Visible = True
.navigate &#8220;http://mail.163.com&#8221;
Do Until .Readystate = 4
DoEvents
Loop
.Document.Forms(0).All(9).Value = &#8220;myusername&#8221;
.Document.Forms(0).All(13).Value = &#8220;mypassword&#8221;
.Document.Forms(0).All(35).Click
<span class="readmore"><a href="http://www.tisswb.com/archives/177.html" title="VBA自动登陆163信箱" target="_blank">阅读全文——共1037字</a></span>]]></description>
			<content:encoded><![CDATA[<p> Sub Goto163()<br />
With CreateObject(&#8220;InternetExplorer.Application&#8221;)<br />
.Visible = True<br />
.navigate &#8220;<a href="http://mail.163.com/">http://mail.163.com</a>&#8221;<br />
Do Until .Readystate = 4<br />
DoEvents<br />
Loop<br />
.Document.Forms(0).All(9).Value = &#8220;myusername&#8221;<br />
.Document.Forms(0).All(13).Value = &#8220;mypassword&#8221;<br />
.Document.Forms(0).All(35).Click<br />
End With<br />
MsgBox &#8220;Ok&#8221;<br />
End Sub</p>
<p>或者：</p>
<p>Sub Goto163()<br />
With CreateObject(&#8220;InternetExplorer.Application&#8221;)<br />
.Visible = True<br />
.navigate &#8220;<a href="http://mail.163.com/">http://mail.163.com</a>&#8221;<br />
Do Until .Readystate = 4<br />
DoEvents<br />
Loop<br />
.Document.Forms(0).All(&#8220;username&#8221;).Value = &#8220;myusername&#8221;<br />
.Document.Forms(0).All(&#8220;password&#8221;).Value = &#8220;mypassword&#8221;<br />
.Document.Forms(0).All(&#8220;登录邮箱&#8221;).Click<br />
End With<br />
MsgBox &#8220;Ok&#8221;<br />
End Sub</p>
<p>附：</p>
<p>Sub show163tags()<br />
Dim i As Byte<br />
With CreateObject(&#8220;InternetExplorer.Application&#8221;)<br />
.Visible = True<br />
.navigate &#8220;<a href="http://mail.163.com/">http://mail.163.com</a>&#8221;<br />
Do Until .Readystate = 4<br />
DoEvents<br />
Loop<br />
On Error Resume Next<br />
For i = 1 To 100<br />
If Len(.Document.Forms(0).All(i).Name) &gt; 0 Then Debug.Print &#8220;i=&#8221; &amp; i; &#8220;  name=&#8221; &amp; .Document.Forms(0).All(i).Name<br />
Next<br />
End With<br />
MsgBox &#8220;ok&#8221;<br />
End Sub</p>
<p>返回：</p>
<p>i=9  name=username<br />
i=13  name=password<br />
i=17  name=selType<br />
i=24  name=remUser<br />
i=26  name=secure<br />
i=35  name=登录邮箱<br />
i=40  name=登录网盘<br />
i=62  name=style<br />
i=63  name=product</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/177.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用ＶＢ实现表单的自动提交</title>
		<link>http://www.tisswb.com/archives/175.html</link>
		<comments>http://www.tisswb.com/archives/175.html#comments</comments>
		<pubDate>Tue, 28 Oct 2008 08:40:01 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=175</guid>
		<description><![CDATA[   以摩托罗拉的九月大奖赛为例，下面介绍用 ＶＢ 实现带校验码的网页表单的自动提交。我们现看看摩托罗拉的投票页面：http://www.motorola.com.cn/news/925/photo.asp?id={525147E1-C4A7-41EE-9190-95800AC81E29}
    如果要对用户投票的话就必须先填写验证码！由于验证码是图片，而且是随即的，所以对自动提交数据增加了很大的难度。因此，如果要提交投票就必须先得到验证码！
    难点：（1）取得验证码图片并识别成相应数据；（2）提交数据表单。
    首先我们来剖析一下本页面的 HTML 源代码，代码如下：
        … …
&#60;table&#62;
        &#60;form name=&#8221;form1&#8243; method=&#8221;post&#8221; action=&#8221;photo_vote.asp&#8221;&#62;
<span class="readmore"><a href="http://www.tisswb.com/archives/175.html" title="用ＶＢ实现表单的自动提交" target="_blank">阅读全文——共3729字</a></span>]]></description>
			<content:encoded><![CDATA[<p>   以摩托罗拉的九月大奖赛为例，下面介绍用 ＶＢ 实现带校验码的网页表单的自动提交。我们现看看摩托罗拉的投票页面：<a href="http://www.motorola.com.cn/news/925/photo.asp?id={525147E1-C4A7-41EE-9190-95800AC81E29}" target="_blank"><span style="color: #000000;">http://www.motorola.com.cn/news/925/photo.asp?id={525147E1-C4A7-41EE-9190-95800AC81E29}</span></a><br />
    如果要对用户投票的话就必须先填写验证码！由于验证码是图片，而且是随即的，所以对自动提交数据增加了很大的难度。因此，如果要提交投票就必须先得到验证码！</p>
<p>    难点：（1）<span style="color: #dc143c;">取得验证码图片并识别成相应数据</span>；（2）<span style="color: #dc143c;">提交数据表单。</span></p>
<p>    首先我们来剖析一下本页面的 HTML 源代码，代码如下：</p>
<p><span style="color: #0000ff;">        … …<br />
&lt;table&gt;<br />
        &lt;form name=&#8221;form1&#8243; method=&#8221;post&#8221; action=&#8221;photo_vote.asp&#8221;&gt;<br />
                &lt;input type=&#8221;hidden&#8221; name=&#8221;id&#8221; <em>value</em>=&#8221;{525147E1-C4A7-41EE-9190-95800AC81E29}&#8221;&gt;<br />
        &lt;tr&gt;<br />
                &lt;td&gt;请输入4位数字验证码： &lt;input type=&#8221;text&#8221; name=&#8221;CheckCode&#8221; size=4&gt;&lt;img src=&#8221;count.asp?sksid=624BE861D1FF9641DE7F1D1FF967C1E711D1FF95CD5E9B1D1FF9|3812D0|1AF2D7&#8243;&gt;&lt;input type=&#8221;submit&#8221; name=&#8221;submit&#8221; <em>value</em>=&#8221;投 票&#8221;&gt;&lt;input type=&#8221;button&#8221; <em>value</em>=&#8221;关 闭&#8221; <em>onClick</em>=&#8221;<em>javascript</em>:window.close()&#8221;&gt;&lt;/td&gt;<br />
        &lt;/tr&gt;<br />
        &lt;/form&gt;<br />
&lt;/table&gt;</p>
<p><font color="#0000ff">        … …</p>
<p></font></span></p>
<p> <br />
为了保证代码的易读性，进行了相应的处理，并省略了部分无用的代码！不难看出的是：</p>
<p>    （1）表单的名称是：form1 ； 提交的页面是：Photo_Vote.asp ； 提交方式是：Post<br />
    （2）表单提交的数据有：id 和 CheckCode 。其中 id 为隐藏域，内容是：{525147E1-C4A7-41EE-9190-95800AC81E29}<br />
    （3）验证码的图片文件为：count.asp?sksid=624BE861D1FF9641DE7F1D1FF967C1E711D1FF95CD5E9B1D1FF9|3812D0|1AF2D7 它是由 Count.asp 随即动态生成，存在不确定性！<br />
    （4）在网页的验证码的图片上按右键，保存图片时显示为：Count.XBM 即图片的格式为：XBM</p>
<p>    通过上面的分析，问题就可以一个一个解决了。</p>
<p> </p>
<p><span style="font-size: medium;">【表单的提交】</span></p>
<p> <br />
    表单的提交有几种方式，常用的有两种：一是直接提交含表单提交数据的网址；二是修改原表单，然后提交新数据！<br />
    对于第一种，我们在得到验证码后可以这样发送：<a href="http://www.motorola.com.cn/news/925/photo_vote.asp?id=" target="_blank"><span style="color: #000000;">http://www.motorola.com.cn/news/925/photo_vote.asp?id=</span></a>{525147E1-C4A7-41EE-9190-95800AC81E29}&amp;CheckCode=6793 然而由于摩托罗拉的网站对 Cookies 进行了操作，这样做起来不是很好，而且也难成功，所以我们直能改用第二种方法，修改原有的表单。<br />
    首先，利用 WebBrowers 控件取得网页源代码（具体方法，请参考：<a href="http://www.cndevx.com/tips/showdoc.asp?detail_id=1337" target="_blank"><span style="color: #000000;">http://www.cndevx.com/tips/showdoc.asp?detail_id=1337</span></a>）利用VB中的 Replace 函数将原表单网页的代码修改成：<br />
        … …<br />
&lt;table&gt;<br />
        &lt;form name=&#8221;form1&#8243; method=&#8221;post&#8221; action=&#8221;<a href="about:blank" target="_blank"><span style="color: #000000;"><strong><em><span style="color: #ff0000;">http://www.motorola.com.cn/news/925/photo_vote.asp</span></em></strong>&#8220;</span></a>;&gt;<br />
                &lt;input type=&#8221;hidden&#8221; name=&#8221;id&#8221; <em>value</em>=&#8221;{525147E1-C4A7-41EE-9190-95800AC81E29}&#8221;&gt;<br />
        &lt;tr&gt;<br />
                &lt;td&gt;请输入4位数字验证码： &lt;input type=&#8221;text&#8221; name=&#8221;CheckCode&#8221; size=4 <strong><span style="color: #ff0000;">value=6739</span></strong>&gt;&lt;img src=&#8221;count.asp?sksid=624BE861D1FF9641DE7F1D1FF967C1E711D1FF95CD5E9B1D1FF9|3812D0|1AF2D7&#8243;&gt;</p>
<p><span style="color: #ff0000;"><strong><em>&lt;Script&gt;<br />
        form1.submit();<br />
&lt;/Script&gt;</em></strong></span><br />
&lt;input type=&#8221;button&#8221; <em>value</em>=&#8221;关 闭&#8221; <em>onClick</em>=&#8221;<em>javascript</em>:window.close()&#8221;&gt;&lt;/td&gt;<br />
        &lt;/tr&gt;<br />
        &lt;/form&gt;<br />
&lt;/table&gt;<br />
        … …<br />
    然后利用 Webbrowers.Document.write HTMLCodes 方式，讲替换的 HTML 代码重新写入 Webbrowers 控件里面， Webbrowers 控件将自动运行新的代码，即自动提交了数据！</p>
<p>    这样，整个提交过程就自动完成了，如果我们再加上相应的时间控制或者其他网站的话，就可以实现自动刷新和消息群发了！</p>
<p> </p>
<p>【XBM 图片文件】</p>
<p> </p>
<p>    XBM（X BitMap）一种图形文件格式</p>
<p>    文件结构类似如下：<br />
#define counter_width 32                           //定义图片宽（象素）<br />
#define counter_height 10                           //定义图片高（象素）<br />
static unsigned char counter_bits[]={<br />
0x3c,0x3c,0xfe,0x3c,0&#215;66,0&#215;66,0xfe,0&#215;66,0xc3,0xc3,0&#215;06,0&#215;60,0&#215;66,0&#215;66,0&#215;06,0&#215;60,0x3c,0x3c,0x3e,0&#215;30,0&#215;66,0&#215;66,0&#215;60,0&#215;18,0xc3,0xc3,0xc0,0x0c,0xc3,0xc3,0xc3,0&#215;06,0&#215;66,0&#215;66,0&#215;66,0&#215;06,0x3c,0x3c,0x3c,0x7e};                           //图像数据，采取16进制格式的，还原图像时需转换成二进制后数据反向，否则图片将是反的</p>
<p>    得到 XBM 图片，分离成相应的字符，然后与预先的图片文件比较，即可得出此图像代表的数字，即所谓的识别！</p>
<p>    演示程序：<a href="http://www.cndevx.com/club/uploadfile/2003941042070557.rar">http://www.cndevx.com/club/uploadfile/2003941042070557.rar</a></p>
<p>    源 代 码：<a href="http://www.cndevx.com/club/uploadfile/20039410421872749.rar">http://www.cndevx.com/club/uploadfile/20039410421872749.rar</a></p>
<p>＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝＝<br />
附：使用VB获得一页的HTML代码</p>
<p>加入WebBrowser、Timer、CommandButton控件各一个，然后使用以下代码：</p>
<p>Private Sub Command1_Click()<br />
    WebBrowser1.Navigate &#8221;<a href="http://www.motorola.com.cn/news/925/photo_vote.asp?id=" target="_blank"><span style="color: #000000;">http://www.motorola.com.cn/news/925/photo_vote.asp?id=</span></a>{525147E1-C4A7-41EE-9190-95800AC81E29}&#8221;<br />
    Timer1.Enabled = True<br />
End Sub</p>
<p>Private Sub Timer1_Timer()<br />
    Dim doc, objhtml As Object<br />
    Dim i As Integer<br />
    Dim strhtml As String<br />
    <br />
    If Not WebBrowser1.Busy Then<br />
        Set doc = WebBrowser1.Document<br />
        i = 0<br />
        Set objhtml = doc.body.createtextrange()<br />
        If Not IsNull(objhtml) Then<br />
            Text1.Text = objhtml.htmltext<br />
        End If<br />
        Timer1.Enabled = False<br />
    End If<br />
End Sub </p>
<p>    这是网上流行的一种方法，但是从我使用来看，因为 WebBrowers 控件本身有 DocumentComplete 事件，也就是说并不需要使用 Timer 控件！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/175.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel中最常用的300句VBA编程语句</title>
		<link>http://www.tisswb.com/archives/173.html</link>
		<comments>http://www.tisswb.com/archives/173.html#comments</comments>
		<pubDate>Tue, 28 Oct 2008 06:57:03 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[vba编程]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=173</guid>
		<description><![CDATA[最近研究了一下vba编程，主要是针对excel的，现在为了学习，特别从网上搜集了300句常用语句，以备不时之需，也留给网友，不方便的时候查询一下。
定制模块行为
(1) Option Explicit &#8216;强制对模块内所有变量进行声明
Option Private Module &#8216;标记模块为私有，仅对同一工程中其它模块有用，在宏对话框中不显示
       Option Compare Text &#8216;字符串不区分大小写
       Option Base 1 &#8216;指定数组的第一个下标为1
(2) On Error Resume Next &#8216;忽略错误继续执行VBA代码,避免出现错误消息
(3) On Error GoTo ErrorHandler &#8216;当错误发生时跳转到过程中的某个位置
(4) On Error GoTo 0 &#8216;恢复正常的错误提示
<span class="readmore"><a href="http://www.tisswb.com/archives/173.html" title="Excel中最常用的300句VBA编程语句" target="_blank">阅读全文——共25028字</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近研究了一下vba编程，主要是针对excel的，现在为了学习，特别从网上搜集了300句常用语句，以备不时之需，也留给网友，不方便的时候查询一下。</p>
<p>定制模块行为<br />
(1) Option Explicit &#8216;强制对模块内所有变量进行声明<br />
Option Private Module &#8216;标记模块为私有，仅对同一工程中其它模块有用，在宏对话框中不显示<br />
       Option Compare Text &#8216;字符串不区分大小写<br />
       Option Base 1 &#8216;指定数组的第一个下标为1<br />
(2) On Error Resume Next &#8216;忽略错误继续执行VBA代码,避免出现错误消息<br />
(3) On Error GoTo ErrorHandler &#8216;当错误发生时跳转到过程中的某个位置<br />
(4) On Error GoTo 0 &#8216;恢复正常的错误提示<br />
(5) Application.DisplayAlerts=False &#8216;在程序执行过程中使出现的警告框不显示<br />
(6) Application.ScreenUpdating=False &#8216;关闭屏幕刷新<br />
   Application.ScreenUpdating=True &#8216;打开屏幕刷新<br />
(7) Application.Enable.CancelKey=xlDisabled &#8216;禁用Ctrl+Break中止宏运行的功能<br />
工作簿<br />
(8) Workbooks.Add() &#8216;创建一个新的工作簿<br />
(9) Workbooks(“book1.xls”).Activate &#8216;激活名为book1的工作簿<br />
(10) ThisWorkbook.Save &#8216;保存工作簿<br />
(11) ThisWorkbook.close &#8216;关闭当前工作簿<br />
(12) ActiveWorkbook.Sheets.Count &#8216;获取活动工作薄中工作表数<br />
(13) ActiveWorkbook.name  &#8216;返回活动工作薄的名称<br />
(14) ThisWorkbook.Name ‘返回当前工作簿名称<br />
    ThisWorkbook.FullName ‘返回当前工作簿路径和名称<br />
(15) ActiveWindow.EnableResize=False ‘禁止调整活动工作簿的大小<br />
(16) Application.Window.Arrange xlArrangeStyleTiled ‘将工作簿以平铺方式排列<br />
(17) ActiveWorkbook.WindowState=xlMaximized ‘将当前工作簿最大化<br />
工作表<br />
(18) ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数<br />
(19) Rows.Count ‘获取工作表的行数(注：考虑向前兼容性)<br />
(20) Sheets(Sheet1).Name= “Sum” &#8216;将Sheet1命名为Sum<br />
(21) ThisWorkbook.Sheets.Add Before:=Worksheets(1) &#8216;添加一个新工作表在第一工作表前<br />
(22) ActiveSheet.Move After:=ActiveWorkbook. _<br />
Sheets(ActiveWorkbook.Sheets.Count) &#8216;将当前工作表移至工作表的最后<br />
(23) Worksheets(Array(“sheet1”,”sheet2”)).Select &#8216;同时选择工作表1和工作表2<br />
(24) Sheets(“sheet1”).Delete或 Sheets(1).Delete &#8216;删除工作表1<br />
(25) ActiveWorkbook.Sheets(i).Name &#8216;获取工作表i的名称<br />
(26) ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines &#8216;切换工作表中的网格线显示，这种方法也可以用在其它方面进行相互切换，即相当于开关按钮<br />
(27) ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings  ‘切换工作表中的行列边框显示<br />
(28) ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中所有的条件格式<br />
(29) Cells.Hyperlinks.Delete ‘取消当前工作表所有超链接<br />
(30) ActiveSheet.PageSetup.Orientation=xlLandscape<br />
或ActiveSheet.PageSetup.Orientation=2 &#8216;将页面设置更改为横向<br />
(31) ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页面设置的表尾中输入文件路径<br />
ActiveSheet.PageSetup.LeftFooter=Application.UserName ‘将用户名放置在活动工作表的页脚<br />
单元格/单元格区域<br />
(32) ActiveCell.CurrentRegion.Select<br />
或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select<br />
&#8216;选择当前活动单元格所包含的范围，上下左右无空行<br />
(33) Cells.Select ‘选定当前工作表的所有单元格<br />
(34) Range(“A1”).ClearContents &#8216;清除活动工作表上单元格A1中的内容<br />
Selection.ClearContents &#8216;清除选定区域内容<br />
Range(“A1:D4”).Clear &#8216;彻底清除A1至D4单元格区域的内容，包括格式<br />
(35) Cells.Clear &#8216;清除工作表中所有单元格的内容<br />
(36) ActiveCell.Offset(1,0).Select &#8216;活动单元格下移一行，同理，可下移一列<br />
(37) Range(“A1”).Offset(ColumnOffset:=1)或Range(“A1”).Offset(,1) ‘偏移一列<br />
Range(“A1”).Offset(Rowoffset:=-1)或Range(“A1”).Offset(-1) ‘向上偏移一行<br />
(38) Range(“A1”).Copy Range(“B1”) &#8216;复制单元格A1，粘贴到单元格B1中<br />
Range(“A1:D8”).Copy Range(“F1”) &#8216;将单元格区域复制到单元格F1开始的区域中<br />
Range(“A1:D8”).Cut Range(“F1”) &#8216;剪切单元格区域A1至D8，复制到单元格F1开始的区域中<br />
Range(“A1”).CurrentRegion.Copy Sheets(“Sheet2”).Range(“A1”) &#8216;复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中<br />
注：CurrentRegion属性等价于定位命令，由一个矩形单元格块组成，周围是一个或多个空行或列<br />
(39) ActiveWindow.RangeSelection.Value=XX &#8216;将值XX输入到所选单元格区域中<br />
(40) ActiveWindow.RangeSelection.Count &#8216;活动窗口中选择的单元格数<br />
(41) Selection.Count &#8216;当前选中区域的单元格数<br />
(42) GetAddress=Replace(Hyperlinkcell.Hyperlinks(1).Address,mailto:,””) ‘返回单元格中超级链接的地址并赋值<br />
(43) TextColor=Range(“A1”).Font.ColorIndex ‘检查单元格A1的文本颜色并返回颜色索引<br />
Range(“A1”).Interior.ColorIndex ‘获取单元格A1背景色<br />
(44) cells.count ‘返回当前工作表的单元格数<br />
(45) Selection.Range(“E4”).Select ‘激活当前活动单元格下方3行，向右4列的单元格<br />
(46) Cells.Item(5,”C”) ‘引单元格C5<br />
    Cells.Item(5,3) ‘引单元格C5<br />
(47) Range(“A1”).Offset(RowOffset:=4,ColumnOffset:=5)<br />
或 Range(“A1”).Offset(4,5) ‘指定单元格F5<br />
(48) Range(“B3”).Resize(RowSize:=11,ColumnSize:=3)<br />
Rnage(“B3”).Resize(11,3) ‘创建B3：D13区域<br />
(49) Range(“Data”).Resize(,2) ‘将Data区域扩充2列<br />
(50) Union(Range(“Data1”),Range(“Data2”)) ‘将Data1和Data2区域连接<br />
(51) Intersect(Range(“Data1”),Range(“Data2”)) ‘返回Data1和Data2区域的交叉区域<br />
(52) Range(“Data”).Count ‘单元格区域Data中的单元格数<br />
    Range(“Data”). Columns.Count ‘单元格区域Data中的列数<br />
    Range(“Data”). Rows.Count ‘单元格区域Data中的行数<br />
(53) Selection.Columns.Count ‘当前选中的单元格区域中的列数<br />
Selection.Rows.Count ‘当前选中的单元格区域中的行数<br />
(54) Selection.Areas.Count ‘选中的单元格区域所包含的区域数<br />
(55) ActiveSheet.UsedRange.Row  ‘获取单元格区域中使用的第一行的行号<br />
(56) Rng.Column ‘获取单元格区域Rng左上角单元格所在列编号<br />
(57) ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions) ‘在活动工作表中返回所有符合条件格式设置的区域<br />
(58) Range(“A1”).AutoFilter Field:=3,VisibleDropDown:=False ‘关闭由于执行自动筛选命令产生的第3个字段的下拉列表<br />
名称<br />
(59) Range(“A1：C3”).Name=“computer” ‘命名A1：C3区域为computer<br />
或Range(“D1：E6”).Name=“Sheet1!book” ‘命名局部变量，即Sheet1上区域D1：E6为book<br />
或 Names(“computer”).Name=“robot” ‘将区域computer重命名为robot<br />
(60) Names(“book”).Delete ‘删除名称<br />
(61) Names.Add Name:=“ContentList”，_<br />
RefersTo:=“=OFFSET(Sheet1!A2,0,0,COUNTA(Sheet2!$A:$A))” ‘动态命名列<br />
(62) Names.Add Name:=“Company”,RefersTo:=“CompanyCar” ‘命名字符串CompanyCar<br />
(63) Names.Add Name:=“Total”,RefersTo:=123456 ‘将数字123456命名为Total。注意数字不能加引号，否则就是命名字符串了。<br />
(64) Names.Add Name:=“MyArray”,RefersTo:=ArrayNum ‘将数组ArrayNum命名为MyArray。<br />
(65) Names.Add Name:=“ProduceNum”,RefersTo:=“=$B$1”,Visible:=False ‘将名称隐藏<br />
(66) ActiveWorkbook.Names(“Com”).Name ‘返回名称字符串<br />
公式与函数<br />
(67) Application.WorksheetFunction.IsNumber(“A1”) &#8216;使用工作表函数检查A1单元格中的数据是否为数字<br />
(68) Range(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate<br />
&#8216;激活单元格区域A列中最大值的单元格<br />
(69) Cells(8,8).FormulaArray=“=SUM(R2C[-1]:R[-1]C[-1]*R2C:R[-1]C)” ‘在单元格中输入数组公式。注意必须使用R1C1样式的表达式<br />
图表<br />
(70) ActiveSheet.ChartObjects.Count &#8216;获取当前工作表中图表的个数<br />
(71) ActiveSheet.ChartObjects(“Chart1”).Select ‘选中当前工作表中图表Chart1<br />
(72) ActiveSheet.ChartObjects(“Chart1”).Activate<br />
    ActiveChart.ChartArea.Select ‘选中当前图表区域<br />
(73) WorkSheets(“Sheet1”).ChartObjects(“Chart2”).Chart. _<br />
ChartArea.Interior.ColorIndex=2 ‘更改工作表中图表的图表区的颜色<br />
(74) Sheets(“Chart2”).ChartArea.Interior.ColorIndex=2 ‘更改图表工作表中图表区的颜色<br />
(75) Charts.Add ‘添加新的图表工作表<br />
(76) ActiveChart.SetSourceData Source:=Sheets(“Sheet1”).Range(“A1:D5”), _<br />
PlotBy:=xlColumns ‘指定图表数据源并按列排列<br />
(77) ActiveChart.Location Where:=xlLocationAsNewSheet ‘新图表作为新图表工作表<br />
(78) ActiveChart.PlotArea.Interior.ColorIndex=xlNone ‘将绘图区颜色变为白色<br />
(79) WorkSheets(“Sheet1”).ChartObjects(1).Chart. _<br />
Export FileName:=“C：MyChart.gif”,FilterName:=“GIF” ‘将图表1导出到C盘上并命名为MyChart.gif<br />
窗体<br />
(80) MsgBox “Hello!” &#8216;消息框中显示消息Hello<br />
(81) Ans=MsgBox(“Continue?”,vbYesNo) &#8216;在消息框中点击“是”按钮，则Ans值为vbYes；点击“否”按钮，则Ans值为vbNo。<br />
If MsgBox(“Continue?”,vbYesNo)&lt;&gt;vbYes Then Exit Sub &#8216;返回值不为“是”，则退出<br />
(82) Config=vbYesNo+vbQuestion+vbDefaultButton2 &#8216;使用常量的组合，赋值组Config变量，并设置第二个按钮为缺省按钮<br />
(83) MsgBox “This is the first line.” &amp; vbNewLine &amp; “Second line.” &#8216;在消息框中强制换行，可用vbCrLf代替vbNewLine。<br />
(84) MsgBox &#8220;the average is :&#8221;&amp;Format(Application.WorksheetFunction.Average(Selection),&#8221;#,##0.00&#8243;),vbInformation, &#8220;selection count average&#8221; &amp; Chr(13) &#8216;应用工作表函数返回所选区域的平均值并按指定格式显示<br />
(85) Userform1.Show ‘显示用户窗体<br />
(86) Load Userform1 ‘加载一个用户窗体,但该窗体处于隐藏状态<br />
(87) Userform1.Hide ‘隐藏用户窗体<br />
(88) Unload Userform1 或 Unload Me ‘卸载用户窗体<br />
(89) (图像控件).Picture=LoadPicture(“图像路径”) ‘在用户窗体中显示图形<br />
(90) UserForm1.Show 0 或 UserForm1.Show vbModeless ‘将窗体设置为无模式状态<br />
(91) Me.Height=Int(0.88*ActiveWindow.Height) ‘窗体高度为当前活动窗口高度的0.88<br />
   Me.Width=Int(0.88*ActiveWindow.Width) ‘窗体宽度为当前活动窗口高度的0.88<br />
事件<br />
(92) Application.EnableEvents=False &#8216;禁用所有事件<br />
        Application.EnableEvents=True &#8216;启用所有事件<br />
    注：不适用于用户窗体控件触发的事件<br />
对象<br />
(93) Set ExcelSheet = CreateObject(&#8220;Excel.Sheet&#8221;) ‘创建一个Excel工作表对象<br />
ExcelSheet.Application.Visible = True &#8216;设置 Application 对象使 Excel 可见<br />
ExcelSheet.Application.Cells(1, 1).Value = &#8220;Data&#8221; &#8216;在表格的第一个单元中输入文本<br />
ExcelSheet.SaveAs &#8220;C:\TEST.XLS&#8221; &#8216;将该表格保存到C:\test.xls 目录<br />
ExcelSheet.Application.Quit &#8216;关闭 Excel<br />
Set ExcelSheet = Nothing &#8216;释放该对象变量<br />
(94) ‘声明并创建一个Excel对象引用<br />
Dim xlApp As Excel.Application<br />
Dim xlBook As Excel.Workbook<br />
Dim xlSheet As Excel.WorkSheet<br />
Set xlApp = CreateObject(&#8220;Excel.Application&#8221;)<br />
Set xlBook = xlApp.Workbooks.Add<br />
Set xlSheet = xlBook.Worksheets(1)<br />
(95) ‘创建并传递一个 Excel.Application 对象的引用<br />
Call MySub (CreateObject(&#8220;Excel.Application&#8221;))<br />
(96) Set d = CreateObject(Scripting.Dictionary) ‘创建一个 Dictionary 对象变量<br />
(97) d.Add &#8220;a&#8221;, &#8220;Athens&#8221; &#8216;为对象变量添加关键字和条目<br />
其他<br />
(98) Application.OnKey “^I”,”macro” &#8216;设置Ctrl+I键为macro过程的快捷键<br />
(99) Application.CutCopyMode=False ‘退出剪切/复制模式<br />
(100) Application.Volatile True &#8216;无论何时工作表中任意单元格重新计算，都会强制计算该函数<br />
Application.Volatile False &#8216;只有在该函数的一个或多个参数发生改变时，才会重新计算该函数</p>
<p>*******************************************************<br />
定制模块行为<br />
(101) Err.Clear ‘清除程序运行过程中所有的错误<br />
*******************************************************<br />
工作簿<br />
(102) ThisWorkbook.BuiltinDocumentProperties(“Last Save Time”)<br />
或Application.Caller.Parent.Parent.BuiltinDocumentProperties(“Last Save Time”) ‘返回上次保存工作簿的日期和时间<br />
(103) ThisWorkbook.BuiltinDocumentProperties(&#8220;Last Print Date&#8221;)<br />
或Application.Caller.Parent.Parent.BuiltinDocumentProperties(“Last Print Date”) ‘返回上次打印或预览工作簿的日期和时间<br />
(104) Workbooks.Close ‘关闭所有打开的工作簿<br />
(105) ActiveWorkbook.LinkSources(xlExcelLinks)(1) ‘返回当前工作簿中的第一条链接<br />
(106) ActiveWorkbook.CodeName<br />
ThisWorkbook.CodeName  ‘返回工作簿代码的名称<br />
(107) ActiveWorkbook.FileFormat<br />
ThisWorkbook.FileFormat  ‘返回当前工作簿文件格式代码<br />
(108) ThisWorkbook.Path<br />
ActiveWorkbook.Path ‘返回当前工作簿的路径(注:若工作簿未保存,则为空)<br />
(109) ThisWorkbook.ReadOnly<br />
   ActiveWorkbook.ReadOnly ‘返回当前工作簿的读/写值(为False)<br />
(110) ThisWorkbook.Saved<br />
ActiveWorkbook.Saved ‘返回工作簿的存储值(若已保存则为False)<br />
(111) Application.Visible = False ‘隐藏工作簿<br />
   Application.Visible = True ‘显示工作簿<br />
   注:可与用户窗体配合使用,即在打开工作簿时将工作簿隐藏,只显示用户窗体.可设置控制按钮控制工作簿可见<br />
*******************************************************<br />
工作表<br />
(112) ActiveSheet.Columns(&#8220;B&#8221;).Insert ‘在A列右侧插入列，即插入B列<br />
ActiveSheet.Columns(&#8220;E&#8221;).Cut<br />
  ActiveSheet.Columns(&#8220;B&#8221;).Insert  ‘以上两句将E列数据移至B列，原B列及以后的数据相应后移<br />
ActiveSheet.Columns(&#8220;B&#8221;).Cut<br />
  ActiveSheet.Columns(&#8220;E&#8221;).Insert ‘以上两句将B列数据移至D列，原C列和D列数据相应左移一列<br />
(113) ActiveSheet.Calculate ‘计算当前工作表<br />
(114) ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetHidden ‘正常隐藏工作表，同在Excel菜单中选择“格式——工作表——隐藏”操作一样<br />
ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVeryHidden ‘隐藏工作表，不能通过在Excel菜单中选择“格式——工作表——取消隐藏”来重新显示工作表<br />
ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVisible ‘显示被隐藏的工作表<br />
(115) ThisWorkbook.Sheets(1).ProtectContents ‘检查工作表是否受到保护<br />
(116) ThisWorkbook.Worksheets.Add Count:=2, _<br />
Before:=ThisWorkbook.Worksheets(2)<br />
或 ThisWorkbook.Workshees.Add ThisWorkbook.Worksheets(2), , 2  ‘在第二个工作表之前添加两个新的工作表<br />
(117) ThisWorkbook.Worksheets(3).Copy ‘复制一个工作表到新的工作簿<br />
(118) ThisWorkbook.Worksheets(3).Copy ThisWorkbook.Worksheets(2) ‘复制第三个工作表到第二个工作表之前<br />
(119) ThisWorkbook.ActiveSheet.Columns.ColumnWidth = 20 ‘改变工作表的列宽为20<br />
  ThisWorkbook.ActiveSheet.Columns.ColumnWidth = _<br />
 ThisWorkbook.ActiveSheet.StandardWidth ‘将工作表的列宽恢复为标准值<br />
ThisWorkbook.ActiveSheet.Columns(1).ColumnWidth = 20 ‘改变工作表列1的宽度为20<br />
(120) ThisWorkbook.ActiveSheet.Rows.RowHeight = 10 ‘改变工作表的行高为10<br />
  ThisWorkbook.ActiveSheet.Rows.RowHeight = _<br />
ThisWorkbook.ActiveSheet.StandardHeight ‘将工作表的行高恢复为标准值<br />
ThisWorkbook.ActiveSheet.Rows(1).RowHeight = 10 ‘改变工作表的行1的高度值设置为10<br />
(121) ThisWorkbook.Worksheets(1).Activate ‘当前工作簿中的第一个工作表被激活<br />
(122) ThisWorkbook.Worksheets(&#8220;Sheet1&#8243;).Rows(1).Font.Bold = True ‘设置工作表Sheet1中的行1数据为粗体<br />
(123) ThisWorkbook.Worksheets(&#8220;Sheet1&#8243;).Rows(1).Hidden = True ‘将工作表Sheet1中的行1隐藏<br />
ActiveCell.EntireRow.Hidden = True ‘将当前工作表中活动单元格所在的行隐藏<br />
注：同样可用于列。<br />
(124) ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自动调整当前工作表A列列宽<br />
(125) ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘选中当前工作表中常量和文本单元格<br />
ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘选中当前工作表中常量和文本及错误值单元格<br />
*******************************************************<br />
公式与函数<br />
(126) Application.MacroOptions Macro:=”SumPro”,Category:=4 ‘将自定义的SumPro函数指定给Excel中的“统计函数”类别<br />
(127) Application.MacroOptions Macro:=”SumPro”, _<br />
 Description:=”First Sum,then Product” ‘为自定义函数SumPro进行了功能说明<br />
(128) Application.WorksheetFunction.CountA(Range(“A:A”))+1 ‘获取A列的下一个空单元格<br />
(129) WorksheetFunction.CountA(Cell.EntireColumn) ‘返回该单元格所在列非空单元格的数量<br />
WorksheetFunction.CountA(Cell.EntireRow) ‘返回该单元格所在行非空单元格的数量<br />
(130) WorksheetFunction.CountA(Cells) ‘返回工作表中非空单元格数量<br />
(131) ActiveSheet.Range(“A20:D20”).Formula=“=Sum(R[-19]C:R[-1]C”’对A列至D列前19个数值求和<br />
*******************************************************<br />
图表<br />
(132) ActiveWindow.Visible=False<br />
或 ActiveChart.Deselect ‘使图表处于非活动状态<br />
(133) TypeName(Selection)=”Chart” ‘若选中的为图表，则该语句为真，否则为假<br />
(134) ActiveSheet.ChartObjects.Delete ‘删除工作表上所有的ChartObject对象<br />
  ActiveWorkbook.Charts.Delete ‘删除当前工作簿中所有的图表工作表<br />
*******************************************************<br />
窗体和控件<br />
(135) UserForms.Add(MyForm).Show ‘添加用户窗体MyForm并显示<br />
(136)TextName.SetFocus ‘设置文本框获取输入焦点<br />
(137) SpinButton1.Value=0 ‘将数值调节钮控件的值改为0<br />
(138) TextBox1.Text=SpinButton1.Value ‘将数值调节钮控件的值赋值给文本框控件<br />
   SpinButton1.value=&#8221;/Val(TextBox1.Text)&#8221; ‘将文本框控件值赋给数值调节钮控件<br />
   CStr(SpinButton1.Value)=TextBox1.Text ‘数值调节钮控件和文本框控件相比较<br />
(139) UserForm1.Controls.Count ‘显示窗体UserForm1上的控件数目<br />
(140) ListBox1.AddItem “Command1” ‘在列表框中添加Command1<br />
(141) ListBox1.ListIndex ‘返回列表框中条目的值，若为-1，则表明未选中任何列表框中的条目<br />
(142) RefEdit1.Text ‘返回代表单元格区域地址的文本字符串<br />
   RefEdit1.Text=ActiveWindow.RangeSelection.Address ‘初始化RefEdit控件显示当前所选单元格区域<br />
   Set FirstCell=Range(RefEdit1.Text).Range(“A1”) ‘设置某单元格区域左上角单元格<br />
(143) Application.OnTime Now + TimeValue(&#8220;00:00:15&#8243;), &#8220;myProcedure&#8221; ‘等待15秒后运行myProcedure过程<br />
(144) ActiveWindow.ScrollColumn=ScrollBarColumns.Value ‘将滚动条控件的值赋值给ActiveWindow对象的ScrollColumn属性<br />
ActiveWindow.ScrollRow=ScrollBarRows.Value ‘将滚动条控件的值赋值给ActiveWindow对象的ScrollRow属性<br />
(145) UserForm1.ListBox1.AddItem Sheets(“Sheet1”).Cells(1,1) ‘将单元格A1中的数据添加到列表框中<br />
ListBox1.List=Product ‘将一个名为Product数组的值添加到ListBox1中<br />
ListBox1.RowSource=”Sheet2!SumP” ‘使用工作表Sheet2中的SumP区域的值填充列表框<br />
(146) ListBox1.Selected(0) ‘选中列表框中的第一个条目(注：当列表框允许一次选中多个条目时，必须使用Selected属性)<br />
(147) ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中选中的条目<br />
*******************************************************<br />
对象<br />
Application对象<br />
(148) Application.UserName ‘返回应用程序的用户名<br />
(149) Application.Caller ‘返回代表调用函数的单元格<br />
(150) Application.Caller.Parent.Parent ‘返回调用函数的工作簿名称<br />
(151) Application.StatusBar=”请等待……” ‘将文本写到状态栏<br />
  Application.StatusBar=”请等待……” &amp; Percent &amp; “% Completed” ‘更新状态栏文本，以变量Percent代表完成的百分比<br />
  Application.StatusBar=False ‘将状态栏重新设置成正常状态<br />
(152) Application.Goto Reference:=Range(“A1:D4”) ‘指定单元格区域A1至D4，等同于选择“编辑——定位”，指定单元格区域为A1至D4，不会出现“定位”对话框<br />
(153) Application.Dialogs(xlDialogFormulaGoto).Show ‘显示“定位”对话框，但定位条件按钮无效<br />
(154) Application.Dialogs(xlDialogSelectSpecial).Show ‘显示“定位条件”对话框<br />
(155) Application.Dialogs(xlDialogFormatNumber).show ‘显示“单元格格式”中的“数字”选项卡<br />
  Application.Dialogs(xlDialogAlignment).show ‘显示“单元格格式”中的“对齐”选项卡<br />
Application.Dialogs(xlDialogFontProperties).show ‘显示“单元格格式”中的“字体”选项卡<br />
Application.Dialogs(xlDialogBorder).show ‘显示“单元格格式”中的“边框”选项卡<br />
Application.Dialogs(xlDialogPatterns).show ‘显示“单元格格式”中的“图案”选项卡<br />
Application.Dialogs(xlDialogCellProtection).show ‘显示“单元格格式”中的“保护”选项卡<br />
注：无法一次显示带选项卡的“单元格格式”对话框，只能一次显示一个选项卡。<br />
(156) Application.Dialogs(xlDialogFormulaGoto).show Range(&#8220;b2&#8243;), True ‘显示“引用位置”的默认单元格区域并显示引用使其出现在窗口左上角(注：内置对话框参数的使用)<br />
(157) Application.CommandBars(1).Controls(2).Controls(16).Execute ‘执行“定位”话框，相当于选择菜单“编辑——定位”命令<br />
(158) Application.Transpose(Array(“Sun”,”Mon”,”Tur”,”Wed”,”Thu”,”Fri”,”Sat”)) ‘返回一个垂直的数组<br />
(159) Application.Version ‘返回使用的Excel版本号<br />
(160) Application.Cursor = xlNorthwestArrow ‘设置光标形状为北西向箭头<br />
Application.Cursor = xlIBeam ‘设置光标形状为Ⅰ字形<br />
Application.Cursor = xlWait ‘设置光标形状为沙漏(等待)形<br />
Application.Cursor = xlDefault ‘恢复光标的默认设置<br />
(161) Application.WindowState ‘返回窗口当前的状态<br />
   Application.WindowState = xlMinimized ‘窗口最小化<br />
Application.WindowState = xlMaximized ‘窗口最大化<br />
Application.WindowState = xlNormal ‘窗口正常状态<br />
(162) Application.UsableHeight ‘获取当前窗口的高度<br />
Application.UsableWidth ‘获取当前窗口的宽度<br />
(163) Application.ActiveCell.Address ‘返回活动单元格的地址(注:返回的是绝对地址)<br />
(164) Application.ActivePrinter ‘返回当前打印机的名称<br />
(165) Application.ActiveSheet.Name ‘返回活动工作表的名称<br />
(166) Application.ActiveWindow.Caption ‘返回活动窗口的标题<br />
(167) Application.ActiveWorkbook.Name ‘返回活动工作簿的名称<br />
(168) Application.Selection.Address ‘返回所选区域的地址<br />
(169) Application.ThisWorkbook.Name ‘返回当前工作簿的名称<br />
(170) Application.CalculationVersion ‘返回Excel计算引擎版本(右边四位数字)及Excel版本(左边两位数字)<br />
(171) Application.MemoryFree ‘以字节为单位返回Excel允许使用的内存数(不包括已经使用的内存)<br />
(172) Application.MemoryUsed ‘以字节为单位返回Excel当前使用的内存数<br />
(173) Application.MemoryTotal ‘以字节为单位返回Excel可以使用的内存数(包括已使用的内存,是MemoryFree和MemoryUsed的总和)<br />
(174) Application.OperatingSystem ‘返回所使用的操作系统的名称和版本<br />
(175) Application.OrganizationName ‘返回Excel产品登记使用的组织机构的名称<br />
(176) Application.FindFormat ‘查找的格式种类<br />
   Application.ReplaceFormat ‘替换查找到的内容的格式种类<br />
ActiveSheet.Cells.Replace What:=” “, _<br />
Replacement:=” “,SearchFormat:=True,ReplaceFormat:=True ‘替换查找到的格式<br />
(177) Application.Interactive=False ‘忽略键盘或鼠标的输入<br />
(178) Application.Evaluate(&#8220;Rate&#8221;) ‘若在工作表中定义了常量0.06的名称为”Rate”,则本语句将返回值0.06<br />
(179) Application.OnUndo “Undo Option”,“Undo Procedure” ‘选择UndoOption后，将执行Undo Procedure过程<br />
*******************************************************<br />
Range对象<br />
(180) Range(A1:A10).value=&#8221;/Application.WorksheetFunction.Transpose(MyArray)&#8221; ‘将一个含有10个元素的数组转置成垂直方向的工作表单元格区域(A1至A10)<br />
注：因为当把一维数组的内容传递给某个单元格区域时，该单元格区域中的单元格必须是水平方向的，即含有多列的一行。若必须使用垂直方向的单元格区域，则必须先将数组进行转置，成为垂直的。<br />
(181) Range(“A65536”).End(xlUp).Row+1 ‘返回A列最后一行的下一行<br />
(182) rng.Range(“A1”) ‘返回区域左上角的单元格<br />
(183) cell.Parent.Parent.Worksheets ‘访问当前单元格所在的工作簿<br />
(184) Selection.Font.Bold=Not Selection.Font.Bold ‘切换所选单元格是否加粗<br />
(185) ActiveSheet.Range(&#8220;A:B&#8221;).Sort Key1:=Columns(&#8220;B&#8221;), Key2:=Columns(&#8220;A&#8221;), _<br />
Header:=xlYes ‘两个关键字排序，相邻两列，B列为主关键字，A列为次关键字，升序排列<br />
(186) cell.Range(“A1”).NumberFormat ‘显示单元格或单元格区域中的第一个单元格的数字格式<br />
(187) cell.Range(“A1”).HasFormula ‘检查单元格或单元格区域中的第一个单元格是否含有公式<br />
或cell.HasFormula ‘工作表中单元格是否含有公式<br />
(188) Cell.EntireColumn ‘单元格所在的整列<br />
   Cell.EntireRow ‘单元格所在的整行<br />
(189) rng.Name.Name ‘显示rng区域的名称<br />
(190) rng.Address ‘返回rng区域的地址<br />
(191) cell.Range(“A1”).Formula ‘返回包含在rng区域中左上角单元格中的公式。<br />
注：若在一个由多个单元格组成的范围内使用Formula属性，会得到错误；若单元格中没有公式，会得到一个字符串，在公式栏中显示该单元格的值。<br />
(192) Range(“D5:D10”).Cells(1,1) ‘返回单元格区域D5:D10中左上角单元格<br />
(193) ActiveCell.Row ‘活动单元格所在的行数<br />
   ActiveCell.Column ‘活动单元格所在的列数<br />
(194) Range(&#8220;A1:B1&#8243;).HorizontalAlignment = xlLeft ‘当前工作表中的单元格区域数据设置为左对齐<br />
(195) ActiveSheet.Range(“A2:A10”).NumberFormat=”#,##0” ‘设置单元格区域A2至A10中数值格式<br />
(196) rng.Replace “ “,”0”  ‘用0替换单元格区域中的空单元格<br />
*******************************************************<br />
Collection与object<br />
(197) Dim colMySheets As New Collection<br />
Public colMySheets As New Collection  ‘声明新的集合变量<br />
(198) Set MyRange=Range(“A1:A5”) ‘创建一个名为MyRange的对象变量<br />
(199) &lt;object&gt;.Add Cell.Value CStr(Cell.Value) ‘向集合中添加惟一的条目(即将重复的条目忽略)<br />
*******************************************************<br />
Windows API<br />
(200) Declare Function GetWindowsDirectoryA Lib “kernel32” _<br />
(ByVal lpBuffer As String,ByVal nSize As Long) As Long ‘API函数声明。返回安装Windows所在的目录名称，调用该函数后，安装Windows的目录名称将在第一个参数lpBuffer中，该目录名称的字符串长度包含在第二个参数nSize中。<br />
(201) Set objExcel = CreateObject(&#8220;Excel.Application&#8221;)<br />
objExcel.Workbooks.Add ‘创建Excel工作簿<br />
(202) Application.ActivateMicrosoftApp xlMicrosoftWord &#8216;开启Word应用程序<br />
(203) Application.TemplatesPath ‘获取工作簿模板的位置<br />
(204) Application.Calculation = xlCalculationManual ‘设置工作簿手动计算<br />
   Application.Calculation = xlCalculationAutomatic ‘工作簿自动计算<br />
(205) Worksheets(1).EnableCalculation = False ‘不对第一张工作表自动进行重算<br />
(206) Application.CalculateFull &#8216;重新计算所有打开的工作簿中的数据<br />
(207) Application.RecentFiles.Maximum = 5 &#8216;将最近使用的文档列表数设为5<br />
(208) Application.RecentFiles(4).Open &#8216;打开最近打开的文档中的第4个文档<br />
(209) Application.OnTime DateSerial(2006,6,6)+TimeValue(“16:16:16”),“BaoPo” ‘在2006年6月6日的16:16:16开始运行BaoPo过程<br />
(210) Application.Speech.Speak (&#8220;Hello&#8221; &amp; Application.UserName) ‘播放声音，并使用用户的姓名问候用户<br />
(211) MsgBox Application.PathSeparator &#8216;获取&#8221;\&#8221;号<br />
(212) MsgBox Application.International(xlCountrySetting) &#8216;返回应用程序当前所在国家的设置信息<br />
(213) Application.AutoCorrect.AddReplacement &#8220;葛洲坝&#8221;, &#8220;三峡&#8221; &#8216;自动将在工作表中进行输入的&#8221;葛洲坝&#8221;更正为&#8221;三峡&#8221;<br />
(214) Beep &#8216;让计算机发出声音<br />
(215) Err.Number ‘返回错误代码<br />
(216) MsgBox IMEStatus &#8216;获取输入法状态<br />
(217) Date = #6/6/2006#<br />
Time = #6:16:16 AM# &#8216;将系统时间更改为2006年6月6日上午6时16分16秒<br />
(218) Application.RollZoom = Not Application.RollZoom &#8216;切换是否能利用鼠标中间的滑轮放大/缩小工作表<br />
(219) Application.ShowWindowsInTaskba = True ‘显示任务栏中的窗口,即各工作簿占用各自的窗口<br />
(220) Application.DisplayScrollBars = True ‘显示窗口上的滚动条<br />
(221) Application.DisplayFormulaBar = Not Application.DisplayFormulaBar &#8216;切换是否显示编辑栏<br />
(222) Application.Dialogs(xlDialogPrint).Show ‘显示打印内容对话框<br />
(223) Application.MoveAfterReturnDirection = xlToRight &#8216;设置按Enter键后单元格的移动方向向右<br />
(224) Application.FindFile &#8216;显示打开对话框<br />
(225) ThisWorkbook.FollowHyperlink <a>http://www.sinoarch.cn</a> ‘打开超链接文档<br />
(226) ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly &#8216;将当前工作簿设置为只读<br />
(227) ActiveWorkbook.AddToFavorites &#8216;将当前工作簿添加到收藏夹文件夹中<br />
(228) ActiveSheet.CheckSpelling &#8216;在当前工作表中执行&#8221;拼写检查&#8221;<br />
(229) ActiveSheet.Protect userinterfaceonly:=True ‘保护当前工作表<br />
(230) ActiveSheet.PageSetup.LeftHeader = ThisWorkbook.FullName ‘在当前工作表的左侧页眉处打印出工作簿的完整路径和文件名<br />
(231) Worksheets(&#8220;Sheet1&#8243;).Range(&#8220;A1:G37&#8243;).Locked = False<br />
Worksheets(&#8220;Sheet1&#8243;).Protect<br />
&#8216;解除对工作表Sheet1中A1:G37区域单元格的锁定<br />
&#8216;以便当该工作表受保护时也可对这些单元格进行修改<br />
(232) Worksheets(&#8220;Sheet1&#8243;).PrintPreview &#8216;显示工作表sheet1的打印预览窗口<br />
(233) ActiveSheet.PrintPreview Enablechanges:=False ‘禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮<br />
(234) ActiveSheet.PageSetup.PrintGridlines = True &#8216;在打印预览中显示网格线<br />
ActiveSheet.PageSetup.PrintHeadings = True &#8216;在打印预览中显示行列编号<br />
(235) ActiveSheet.ShowDataForm &#8216;开启数据记录单<br />
(236) Worksheets(&#8220;Sheet1&#8243;).Columns(&#8220;A&#8221;).Replace _<br />
What:=&#8221;SIN&#8221;, Replacement:=&#8221;COS&#8221;, _<br />
SearchOrder:=xlByColumns, MatchCase:=True &#8216;将工作表sheet1中A列的SIN替换为COS<br />
(237) Rows(2).Delete &#8216;删除当前工作表中的第2行<br />
Columns(2).Delete &#8216;删除当前工作表中的第2列<br />
(238) ActiveWindow.SelectedSheets.VPageBreaks.Add before:=ActiveCell &#8216;在当前单元格左侧插入一条垂直分页符<br />
ActiveWindow.SelectedSheets.HPageBreaks.Add before:=ActiveCell &#8216;在当前单元格上方插入一条垂直分页符<br />
(239) ActiveWindow.ScrollRow = 14 &#8216;将当前工作表窗口滚动到第14行<br />
ActiveWindow.ScrollColumn = 13 &#8216;将当前工作表窗口滚动到第13列<br />
(240) ActiveWindow.Close &#8216;关闭当前窗口<br />
(241) ActiveWindow.Panes.Count &#8216;获取当前窗口中的窗格数<br />
(242) Worksheets(&#8220;sheet1&#8243;).Range(&#8220;A1:D2&#8243;).CreateNames Top:=True &#8216;将A2至D2的单元格名称设定为A1到D1单元格的内容<br />
(243) Application.AddCustomList listarray:=Range(&#8220;A1:A8&#8243;) &#8216;自定义当前工作表中单元格A1至A8中的内容为自动填充序列<br />
(244) Worksheets(&#8220;sheet1&#8243;).Range(&#8220;A1:B2&#8243;).CopyPicture xlScreen, xlBitmap &#8216;将单元格A1至B2的内容复制成屏幕快照<br />
(245) Selection.Hyperlinks.Delete ‘删除所选区域的所有链接<br />
Columns(1).Hyperlinks.Delete ‘删除第1列中所有的链接<br />
Rows(1).Hyperlinks.Delete  ‘删除第1行中所有的链接<br />
Range(&#8220;A1:Z30&#8243;).Hyperlinks.Delete ‘删除指定范围所有的链接<br />
(246) ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, _<br />
Address:=&#8221;C:\Windows\System32\Calc.exe&#8221;, ScreenTip:=&#8221;按下我，就会开启Windows计算器&#8221;, TextToDisplay:=&#8221;Windows计算器&#8221; &#8216;在活动单元格中设置开启Windows计算器链接<br />
(247) ActiveCell.Value = Shell(&#8220;C:\Windows\System32\Calc.exe&#8221;, vbNormalFocus) &#8216;开启Windows计算器<br />
(248) ActiveSheet.Rows(1).AutoFilter ‘打开自动筛选。若再运行一次，则关闭自动筛选<br />
(249) Selection.Autofilter ‘开启/关闭所选区域的自动筛选<br />
(250) ActiveSheet.ShowAllData ‘关闭自动筛选<br />
(251) ActiveSheet.AutoFilterMode ‘检查自动筛选是否开启，若开启则该语句返回True<br />
(252) ActiveSheet.Columns(&#8220;A&#8221;).ColumnDifferences(Comparison:=ActiveSheet. _<br />
Range(&#8220;A2&#8243;)).Delete &#8216;在A列中找出与单元格A2内容不同的单元格并删除<br />
(253) ActiveSheet.Range(&#8220;A6&#8243;).ClearNotes &#8216;删除单元格A6中的批注，包括声音批注和文字批注<br />
(254) ActiveSheet.Range(&#8220;B8&#8243;).ClearComments &#8216;删除单元格B8中的批注文字<br />
(255) ActiveSheet.Range(&#8220;A1:D10&#8243;).ClearFormats &#8216;清除单元格区域A1至D10中的格式<br />
(256) ActiveSheet.Range(&#8220;B2:D2&#8243;).BorderAround ColorIndex:=5, _<br />
Weight:=xlMedium, LineStyle:=xlDouble &#8216;将单元格B2至D2区域设置为蓝色双线<br />
(257) Range(&#8220;A1:B2&#8243;).Item(2, 3)或Range(&#8220;A1:B2&#8243;)(2, 3) ‘引用单元格C2的数据<br />
Range(&#8220;A1:B2&#8243;)(3)  ‘引用单元格A2<br />
(258) ActiveSheet.Cells(1, 1).Font.Bold = TRUE ‘设置字体加粗<br />
ActiveSheet.Cells(1, 1).Font.Size = 24 ‘设置字体大小为24磅<br />
ActiveSheet.Cells(1, 1).Font.ColorIndex = 3 ‘设置字体颜色为红色<br />
ActiveSheet.Cells(1, 1).Font.Italic = TRUE ‘设置字体为斜体<br />
ActiveSheet.Cells(1, 1).Font.Name = &#8220;Times New Roman&#8221; ‘设置字体类型<br />
ActiveSheet.Cells(1, 1).Interior.ColorIndex = 3 ‘将单元格的背景色设置为红色<br />
(259) ActiveSheet.Range(&#8220;C2:E6&#8243;).AutoFormat Format:=xlRangeAutoFormatColor3 &#8216;将当前工作表中单元格区域C2至E6格式自动调整为彩色3格式<br />
(260) Cells.SpecialCells(xlCellTypeLastCell) ‘选中当前工作表中的最后一个单元格<br />
(261) ActiveCell.CurrentArray.Select &#8216;选定包含活动单元格的整个数组单元格区域.假定该单元格在数据单元格区域中<br />
(262) ActiveCell.NumberFormatLocal = &#8220;0.000; [红色] 0.000&#8243; &#8216;将当前单元格数字格式设置为带3位小数,若为负数则显示为红色<br />
(263) IsEmpty (ActiveCell.Value) &#8216;判断活动单元格中是否有值<br />
(264) ActiveCell.Value = LTrim(ActiveCell.Value) &#8216;删除字符串前面的空白字符<br />
(265) Len(ActiveCell.Value) &#8216;获取活动单元格中字符串的个数<br />
(266) ActiveCell.Value = UCase(ActiveCell.Value) &#8216;将当前单元格中的字符转换成大写<br />
(267) ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase) &#8216;将活动单元格中的字符串转换成小写<br />
(268) ActiveSheet.Range(&#8220;C1&#8243;).AddComment &#8216;在当前工作表的单元格C1中添加批注<br />
(269) Weekday(Date) &#8216;获取今天的星期,以数值表示,1-7分别对应星期日至星期六<br />
(270) ActiveSheet.Range(&#8220;A1&#8243;).AutoFill Range(Cells(1, 1), Cells(10, 1)) &#8216;将单元格A1的数值填充到单元格A1至A10区域中<br />
(271) DatePart(&#8220;y&#8221;, Date) &#8216;获取今天在全年中的天数<br />
(272) ActiveCell.Value = DateAdd(&#8220;yyyy&#8221;, 2, Date) &#8216;获取两年后的今天的日期<br />
(273) MsgBox WeekdayName(Weekday(Date)) &#8216;获取今天的星期数<br />
(274) ActiveCell.Value = Year(Date) &#8216;在当前单元格中输入今年的年份数<br />
ActiveCell.Value = Month(Date) &#8216;在当前单元格中输入今天所在的月份数<br />
ActiveCell.Value = Day(Date) &#8216;在当前单元格中输入今天的日期数<br />
(275) ActiveCell.Value = MonthName(1) &#8216;在当前单元格中显示月份的名称,本句为显示&#8221;一月&#8221;<br />
(276) ActiveCell.Value = Hour(Time) &#8216;在当前单元格中显示现在时间的小时数<br />
ActiveCell.Value = Minute(Time) &#8216;在当前单元格中显示现在时间的分钟数<br />
ActiveCell.Value = Second(Time) &#8216;在当前单元格中显示现在时间的秒数<br />
(277) ActiveSheet.Shapes(1).Delete &#8216;删除当前工作表中的第一个形状<br />
(278) ActiveSheet.Shapes.Count &#8216;获取当前工作表中形状的数量<br />
(279) ActiveSheet.Shapes(1).TextEffect.ToggleVerticalText &#8216;改变当前工作表中第一个艺术字的方向<br />
(280) ActiveSheet.Shapes(1).TextEffect.FontItalic = True &#8216;将当前工作表中第一个艺术字的字体设置为斜体<br />
(281) ActiveSheet.Shapes.AddTextEffect(msoTextEffect21, &#8220;三峡&#8221;,  _<br />
&#8220;Arial Black&#8221;, 22#, msoFalse, msoFalse, 66#, 80).Select &#8216;在当前工作表中创建一个名为&#8221;三峡&#8221;的艺术字并对其进行格式设置和选中<br />
(282) ActiveSheet.Shapes.AddLine(BeginX:=10, BeginY:=10, EndX:=250, _<br />
EndY:=100).Select &#8216;在当前工作表中以(10,10)为起点(250,100)为终点画一条直线并选中<br />
(283) ActiveSheet.Shapes.AddShape(Type:=msoShapeRightTriangle, _<br />
Left:=70, Top:=40, Width:=130, Height:=72).Select &#8216;在当前工作表中画一个左上角在(70,40),宽为130高为72的三角形并选中<br />
(284) ActiveSheet.Shapes.AddShape(Type:=msoShapeRectangle, _<br />
Left:=70, Top:=40, Width:=130, Height:=72).Select &#8216;在当前工作表中画一个以点(70,40)为起点,宽130高72的矩形并选中<br />
(285) ActiveSheet.Shapes.AddShape(Type:=msoShapeOval, _<br />
Left:=70, Top:=40, Width:=130, Height:=72).Select &#8216;在当前工作表中画一个左上角在(70,40),宽为130高为72的椭圆<br />
(286) ActiveSheet.Shapes(1).Line.ForeColor.RGB = RGB(0, 0, 255) &#8216;将当前工作表中第一个形状的线条颜色变为蓝色<br />
(287) ActiveSheet.Shapes(2).Fill.ForeColor.RGB = RGB(255, 0, 0) &#8216;将当前工作表中第2个形状的前景色设置为红色<br />
(288) ActiveSheet.Shapes(1).Rotation = 20 &#8216;将当前工作表中的第1个形状旋转20度<br />
(289) Selection.ShapeRange.Flip msoFlipHorizontal &#8216;将当前选中的形状水平翻转<br />
Selection.ShapeRange.Flip msoFlipVertical &#8216;将当前选中的形状垂直翻转<br />
(290) Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD1 &#8216;将所选取的形状设置为第1种立体样式<br />
(291) ActiveSheet.Shapes(1).ThreeD.Depth = 20 &#8216;将当前工作表中第一个立体形状的深度设置为20<br />
(292) ActiveSheet.Shapes(1).ThreeD.ExtrusionColor.RGB = RGB(0, 0, 255) &#8216;将当前工作表中第1个立体形状的进深部分的颜色设为蓝色<br />
(293) ActiveSheet.Shapes(1).ThreeD.RotationX = 60 &#8216;将当前工作表中的第1个立体形状沿X轴旋转60度<br />
ActiveSheet.Shapes(1).ThreeD.RotationY = 60 &#8216;将当前工作表中的第1个立体形状沿Y轴旋转60度<br />
(294) Selection.ShapeRange.ThreeD.Visible = msoFalse &#8216;将所选择的立体形状转换为平面形状<br />
(295) Selection.ShapeRange.ConnectorFormat.BeginDisconnect &#8216;在形状中让指定的连接符起点脱离原来所连接的形状<br />
(296) ActiveSheet.Shapes(1).PickUp &#8216;复制当前工作表中形状1的格式<br />
(297) ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 260, 160, 180, 30). TextFrame.Characters.Text = &#8220;fanjy.blog.excelhome.net&#8221; &#8216;在工作簿中新建一个文本框并输入内容<br />
(298) ActiveSheet.Shapes.AddLabel(msoTextOrientationHorizontal, 20, 80, 100, 200). TextFrame.Characters.Text = &#8220;fanjy.blog.excelhome.net&#8221; &#8216;在当前工作表中建立一个水平文本框并输入内容<br />
(299) ActiveSheet.Shapes.AddPicture &#8220;d:\sx.jpg&#8221;, True, True, 60, 20, 400, 300 &#8216;在当前工作表中插入一张d盘中名为sx的图片<br />
(300) ActiveChart.ApplyCustomType xl3DArea &#8216;将当前图表类型改为三维面积图</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/173.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>excel2007使用vba实现自动填写网页表格</title>
		<link>http://www.tisswb.com/archives/167.html</link>
		<comments>http://www.tisswb.com/archives/167.html#comments</comments>
		<pubDate>Sat, 25 Oct 2008 06:47:43 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[vba编程]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=167</guid>
		<description><![CDATA[最近因为需要把excel里的内容拷贝复制到网页上去填表，一个一个的复制粘贴，甚是麻烦和枯燥。因为我是一个懒人，所以就开始想些简单的方法，记得以前在学校图书馆里看到excel的宏命令甚是强大，于是就自己编写了一段简单的宏命令，可以自动填写网页表格，也算懒一把啦。
下面给大家一个示例程序，可以自动读取表格第一行的数据登陆163邮箱。
代码如下：
Sub goto163()
Dim x, y As Integer
x = Selection.Row()
Dim urlstr As String
urlstr = Worksheets(&#8220;Sheet1&#8243;).Cells(x, 4).Value
With CreateObject(&#8220;InternetExplorer.Application&#8221;)
.Visible = True
<span class="readmore"><a href="http://www.tisswb.com/archives/167.html" title="excel2007使用vba实现自动填写网页表格" target="_blank">阅读全文——共712字</a></span>]]></description>
			<content:encoded><![CDATA[<p>最近因为需要把excel里的内容拷贝复制到网页上去填表，一个一个的复制粘贴，甚是麻烦和枯燥。因为我是一个懒人，所以就开始想些简单的方法，记得以前在学校图书馆里看到excel的宏命令甚是强大，于是就自己编写了一段简单的宏命令，可以自动填写网页表格，也算懒一把啦。</p>
<p>下面给大家一个示例程序，可以自动读取表格第一行的数据登陆163邮箱。</p>
<p>代码如下：</p>
<p>Sub goto163()</p>
<p>Dim x, y As Integer</p>
<p>x = Selection.Row()</p>
<p>Dim urlstr As String</p>
<p>urlstr = Worksheets(&#8220;Sheet1&#8243;).Cells(x, 4).Value</p>
<p>With CreateObject(&#8220;InternetExplorer.Application&#8221;)<br />
.Visible = True<br />
.navigate urlstr</p>
<p>Do Until .Readystate = 4<br />
    DoEvents<br />
Loop</p>
<p>y = 1</p>
<p>.Document.Forms(0).All(&#8220;username&#8221;).Value = Worksheets(&#8220;Sheet1&#8243;).Cells(x, y)</p>
<p>y = y + 1</p>
<p>.Document.Forms(0).All(&#8220;password&#8221;).Value = Worksheets(&#8220;Sheet1&#8243;).Cells(x, y)</p>
<p>y = y + 1</p>
<p>.Document.Forms(0).All(&#8220;selType&#8221;).Value = Worksheets(&#8220;Sheet1&#8243;).Cells(x, y)</p>
<p>&#8216;.Document.Forms(0).All(&#8220;登录邮箱&#8221;).Click</p>
<p>End With</p>
<p>End Sub</p>
<p>配合这个程序演示的表格内容如下：</p>
<p>[singlepic=102,403,60,web20,left]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/167.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UTF-8文件的Unicode签名BOM(Byte Order Mark)问题</title>
		<link>http://www.tisswb.com/archives/83.html</link>
		<comments>http://www.tisswb.com/archives/83.html#comments</comments>
		<pubDate>Sat, 19 Jul 2008 15:32:24 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[Unicode签名]]></category>
		<category><![CDATA[UTF-8]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=83</guid>
		<description><![CDATA[近日在调测一个UTF8编码的中文Zen Cart网站时遇到一件怪事，网页显示文字正常，用ie的察看源文件（记事本打开）却发现乱码，firefox没有这个问题。经在网上多方查证和多次测试，解决了这个问题，其实是UTF-8文件的Unicode签名BOM(Byte Order Mark)问题。
BOM(Byte Order Mark)，是UTF编码方案里用于标识编码的标准标记，在UTF-16里本来是FF FE，变成UTF-8就成了EF BB BF。这个标记是可选的，因为UTF8字节没有顺序，所以它可以被用来检测一个字节流是否是UTF-8编码的。微软做这种检测，但有些软件不做这种检测，而把它当作正常字符处理。
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。
<span class="readmore"><a href="http://www.tisswb.com/archives/83.html" title="UTF-8文件的Unicode签名BOM(Byte Order Mark)问题" target="_blank">阅读全文——共1368字</a></span>]]></description>
			<content:encoded><![CDATA[<div class="itemtext">
<p><span style="font-size: x-small;">近日在调测一个UTF8编码的中文Zen Cart网站时遇到一件怪事，网页显示文字正常，用ie的察看源文件（记事本打开）却发现乱码，firefox没有这个问题。经在网上多方查证和多次测试，解决了这个问题，其实是UTF-8文件的Unicode签名BOM(Byte Order Mark)问题。</span></p>
<p><span style="font-size: x-small;">BOM(Byte Order Mark)，是UTF编码方案里用于标识编码的标准标记，在UTF-16里本来是FF FE，变成UTF-8就成了EF BB BF。这个标记是可选的，因为UTF8字节没有顺序，所以它可以被用来检测一个字节流是否是UTF-8编码的。微软做这种检测，但有些软件不做这种检测，而把它当作正常字符处理。</span></p>
<p><span style="font-size: x-small;">微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。</span></p>
<p><span style="font-size: x-small;">也就是说一个UTF-8文件可能有BOM，也可能没有BOM，那么怎么区分呢？三种方法。1，用UltraEdit-32打开文件，切换到十六进制编辑模式，察看文件头部是否有EF BB BF。2，用Dreamweaver打开，察看页面属性，看“包括Unicode签名BOM”前面是否有个勾。3，用Windows的记事本打开，选择 “另存为”，看文件的默认编码是UTF-8还是ANSI，如果是ANSI则不带BOM。</span></p>
<p><span style="font-size: x-small;">我找到Zen Cart的模版文件中的html_header.php，发现文件果然不带BOM，用UltraEdit-32另存为的方式加上BOM后，再上传html_header.php，一切正常。</span></p>
<p><span style="font-size: x-small;">注意用Convertz把gb2312文件转换成UTF-8文件时，默认设置是不带BOM的。不带BOM可能出现上述乱码问题，但是带 BOM，对于php的include文件要小心，会在php字节流前面多出EF BB BF，提前输出到显示器有可能会带来程序错误。一个解决方案是凡是被include的文件都保存为ANSI，主文件可以是UTF-8。要想把一个文件去掉 BOM，使用UlterEdit打开, 切换到十六进制编辑模式，把最前面三个字节(就是那该死的 EF BB BF)替换为20，保存（注意关闭保存时自动备份的功能），再切换到默认编辑模式，把最前面的三个空格去掉就可以了。</span></p>
<p><span style="font-size: x-small;">另外还学到一些编码的小知识：所谓的unicode保存的文件实际上是utf-16，只不过恰好跟unicode的码相同而已,但在概念上unicode与utf是两回事，unicode是内存编码表示方案，而utf是如何保存和传输unicode的方案。utf-16还分高位在前 (LE)和高位在后(BE)两种。官方的utf编码还有utf-32，也分LE和BE。非unicode官方的utf编码还有utf-7，主要用于邮件传输。utf-8的单字节部分是和iso-8859-1兼容的，这主要是一些旧的系统和库函数不能正确处理utf-16而被迫出来的，而且对英语字符来说，也节省保存的文件空间（以非英语字符浪费空间为代价）。在iso-8859-1的时候，utf8和iso-8859-1都是用一个字节表示的，当表示其它字符的时候，utf-8会使用两个或三个字节。 </span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/83.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux与windows的最大差异：Linux内核编译及详解</title>
		<link>http://www.tisswb.com/archives/69.html</link>
		<comments>http://www.tisswb.com/archives/69.html#comments</comments>
		<pubDate>Sat, 21 Jun 2008 16:38:42 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[Linux/Unix]]></category>
		<category><![CDATA[windows相关]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[内核编译]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=69</guid>
		<description><![CDATA[windows系统优化有一个地方从来没有动过，那就是内核的优化，没有这个功能也就没有了很多的个性定制，这也许就是开源与不开源的巨大差异。下面说正题吧，
 一、内核简介
　　内核，是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统，决定着系统的性能和稳定性。
　　linux的一个重要的特点就是其源代码的公开性，所有的内核源程序都可以在 /usr/src/linux下找到，大部分应用软件也都是遵循GPL而设计的，你都可以获取相应的源程序代码。全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中，由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。
　　想象一下，拥有了内核的源程序对你来说意味着什么？首先，我们可以了解系统是如何工作的。通过通读源代码，我们就可以了解系统的工作原理，这在Windows下简直是天方夜谭。其次，我们可以针对自己的情况，量体裁衣，定制适合自己的系统，这样就需要重新编译内核。在Windows下是什么情况呢？相信很多人都被越来越庞大的Windows整得莫名其妙过。再次，我们可以对内核进行修改，以符合自己的需要。这意味着什么？没错，相当于自己开发了一个操作系统，但是大部分的工作已经做好了，你所要做的就是要增加并实现自己需要的功能。在Windows下，除非你是微软的核心技术人员，否则就不用痴心妄想了。
<span class="readmore"><a href="http://www.tisswb.com/archives/69.html" title="Linux与windows的最大差异：Linux内核编译及详解" target="_blank">阅读全文——共9116字</a></span>]]></description>
			<content:encoded><![CDATA[<p>windows系统优化有一个地方从来没有动过，那就是内核的优化，没有这个功能也就没有了很多的个性定制，这也许就是开源与不开源的巨大差异。下面说正题吧，</p>
<p> 一、内核简介<br />
　　内核，是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统，决定着系统的性能和稳定性。<br />
　　linux的一个重要的特点就是其源代码的公开性，所有的内核源程序都可以在 /usr/src/linux下找到，大部分应用软件也都是遵循GPL而设计的，你都可以获取相应的源程序代码。全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中，由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用。而Linux的内核则是这些特点的最直接的代表。<br />
　　想象一下，拥有了内核的源程序对你来说意味着什么？首先，我们可以了解系统是如何工作的。通过通读源代码，我们就可以了解系统的工作原理，这在Windows下简直是天方夜谭。其次，我们可以针对自己的情况，量体裁衣，定制适合自己的系统，这样就需要重新编译内核。在Windows下是什么情况呢？相信很多人都被越来越庞大的Windows整得莫名其妙过。再次，我们可以对内核进行修改，以符合自己的需要。这意味着什么？没错，相当于自己开发了一个操作系统，但是大部分的工作已经做好了，你所要做的就是要增加并实现自己需要的功能。在Windows下，除非你是微软的核心技术人员，否则就不用痴心妄想了。</p>
<p>二、内核版本号<br />
　　由于linux的源程序是完全公开的，任何人只要遵循GPL，就可以对内核加以修改并发布给他人使用。Linux的开发采用的是集市模型（bazaar，与cathedral&#8211;教堂模型&#8211;对应），为了确保这些无序的开发过程能够有序地进行，Linux采用了双树系统。一个树是稳定树（stable tree），另一个树是非稳定树（unstable tree）或者开发树（development tree）。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树，那么在开发树中经过测试以后，在稳定树中将进行相同的改进。一旦开发树经过了足够的发展，开发树就会成为新的稳定树。开发数就体现在源程序的版本号中；源程序版本号的形式为x.y.z：对于稳定树来说，y是偶数；对于开发树来说，y比相应的稳定树大一（因此，是奇数）。到目前为止，稳定树的最高版本是2.4.18；开发树的最新版本是2.5.10。下载内核版本请访问http://www.kernel.org。</p>
<p>三、为什么重新编译内核<br />
　　linux作为一个自由软件，在广大爱好者的支持下，内核版本不断更新。新的内核修订了旧内核的bug，并增加了许多新的特性。如果用户想要使用这些新特性，或想根据自己的系统度身定制一个更高效，更稳定的内核，就需要重新编译内核。<br />
　　通常，更新的内核会支持更多的硬件，具备更好的进程管理能力，运行速度更快、 更稳定，并且一般会修复老版本中发现的许多漏洞等，经常性地选择升级更新的系统内核是 linux使用者的必要操作内容。<br />
　　为了正确的合理地设置内核编译配置选项，从而只编译系统需要的功能的代码，一般主要有下面四个考虑：<br />
　　自己定制编译的内核运行更快（具有更少的代码）<br />
　　系统将拥有更多的内存（内核部分将不会被交换到虚拟内存中）<br />
　　不需要的功能编译进入内核可能会增加被系统攻击者利用的漏洞<br />
　　将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些</p>
<p>四、内核编译模式<br />
　　要增加对某部分功能的支持，比如网络之类，可以把相应部分编译到内核中（build-in），也可以把该部分编译成模块（module），动态调用。如果编译到内核中，在内核启动时就可以自动支持相应部分的功能，这样的优点是方便、速度快，机器一启动，你就可以使用这部分功能了；缺点是会使内核变得庞大起来，不管你是否需要这部分功能，它都会存在，这就是Windows惯用的招数，建议经常使用的部分直接编译到内核中，比如网卡。如果编译成模块，就会生成对应的.o文件，在使用的时候可以动态加载，优点是不会使内核过分庞大，缺点是你得自己来调用这些模块。</p>
<p>五、新版本内核的获取和更新<br />
　　linux内核版本发布的官方网站是http://www.kernel.org。新版本的内核分两种，一种是full Source版本，另外一种是patch文件，即补丁。完整的内核版本比较大，一般是 tar.gz或者是.bz2文件，二者分别是使用g***或者b***2进行压缩的文件，使用时需要解压缩。patch文件则比较小，一般只有几十K到几百K,但是patch文件是针对于特定的版本的，你需要找到自己对应的版本才能使用。<br />
　　编译内核需要root权限，以下操作都假定你是root用户。请把你需要升级的内核拷贝到/usr/src/下（下文中以2.4.18的内核的linux-2.4.18.tar.gz为例），命令为</p>
<p>#cp linux-2.4.18.tar.gz /usr/src</p>
<p>　　让我们先来查看一下当前/usr/src的内容，注意到有一个linux-2.4的符号链接，指向一个linux-2.4.7-10（以REDHAT7.2为例）的目录。这就是你所装linux的kernel源代码，删除这个链接。</p>
<p>　　现在解压我们下载的源程序文件。如果所下载的是.tar.gz（.tgz）文件，请使用下面的命令：</p>
<p>#tar -zxvf linux-2.4.18.tar.gz.tar.gz</p>
<p>　　如果你所下载的是.bz2文件，例如linux-2.4.0test8.tar.bz2，请使用下面的命令</p>
<p>#b***2 -d linux-2.4.18.tar.bz2<br />
#tar -xvf linux-2.4.18.tar</p>
<p>　　文件将解压到/usr/src/linux目录中,我们把它稍作修改：</p>
<p>#mv linux linux-2.4.18<br />
#ln -s linux-2.4.18 linux</p>
<p>　　如果下载的是patch文件，就可以进行patch操作（下面假设patch-2.4.18已经位于 /usr/src目录下了，否则你需要先把该文件拷贝到/usr/src下）：</p>
<p>#patch -p0 &lt; patch-2.4.18</p>
<p>　　<br />
六、内核编译<br />
　　通常要运行的第一个命令是：</p>
<p>＃cd /usr/src/linux<br />
＃make mrproper</p>
<p>　　该命令确保源代码目录下没有不正确的.o文件以及文件的互相依赖。由于我们使用刚下载的完整的源程序包进行编译，所以本步可以省略。而如果你多次使用了这些源程序编译内核，那么最好要先运行一下这个命令。<br />
　　确保/usr/include/目录下的asm、linux和scsi等链接是指向要升级的内核源代码的。它们分别链向源代码目录下的真正的、该计算机体系结构（对于PC机来说，使用的体系结构是i386）所需要的真正的include子目录。如：asm指向/usr/src/linux/include/asm-i386 等。若没有这些链接，就需要手工创建，按照下面的步骤进行：</p>
<p># cd /usr/include/<br />
# rm -r asm linux scsi<br />
# ln -s /usr/src/linux/include/asm-i386 asm<br />
# ln -s /usr/src/linux/include/linux linux<br />
# ln -s /usr/src/linux/include/scsi scsi</p>
<p>　　这是配置非常重要的一部分。删除掉/usr/include下的asm、linux和scsi链接后，再创建新的链接指向新内核源代码目录下的同名的目录。这些头文件目录包含着保证内核在系统上正确编译所需要的重要的头文件。现在你应该明白为什么我们上面又在/usr/src下 &#8220;多余&#8221;地创建了个名为linux的链接了吧？</p>
<p>　　接下来的内核配置过程比较烦琐，但是配置的适当与否与日后linux的运行直接相关，有必要了解一下一些主要的且经常用到的选项的设置。<br />
　　<br />
配置内核可以根据需要与爱好使用下面命令中的一个：</p>
<p>#make config（基于文本的最为传统的配置界面，不推荐使用）<br />
#make menuconfig（基于文本选单的配置界面，字符终端下推荐使用）<br />
#make xconfig（基于图形窗口模式的配置界面，Xwindow下推荐使用）<br />
#make oldconfig（如果只想在原来内核配置的基础上修改一些小地方，会省去不少麻烦）</p>
<p>　　这三个命令中，make xconfig的界面最为友好，如果你可以使用Xwindow，那么就推荐你使用这个命令，界面如下：</p>
<p>　　如果你不能使用Xwindow，那么就使用make menuconfig好了。界面虽然比上面一个差点，总比make config的要好多了，下图为make menuconfig的界面：<br />
　　选择相应的配置时，有三种选择，它们分别代表的含义如下：<br />
　　Y－-将该功能编译进内核<br />
　　N－-不将该功能编译进内核<br />
　　M－-将该功能编译成可以在需要时动态插入到内核中的模块<br />
　　如果使用的是make xconfig，使用鼠标就可以选择对应的选项。如果使用的是 make menuconfig，则需要使用空格键进行选取。你会发现在每一个选项前都有个括号, 但有的是中括号有的是尖括号，还有一种圆括号。用空格键选择时可以发现，中括号里要么是空，要么是&#8221;*&#8221;，而尖括号里可以是空，&#8221;*&#8221;和&#8221;M&#8221;。这表示前者对应的项要么不要，要么编译到内核里；后者则多一样选择，可以编译成模块。而圆括号的内容是要你在所提供的几个选项中选择一项。<br />
　　在编译内核的过程中，最烦杂的事情就是这步配置工作了，很多新手都不清楚到底该如何选取这些选项。实际上在配置时，大部分选项可以使用其缺省值，只有小部分需要根据用户不同的需要选择。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块，有利于减小内核的长度，减小内核消耗的内存，简化该功能相应的环境改变时对内核的影响；不需要的功能就不要选；与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。</p>
<p>至于选项，因为比较复杂，只是简单做一介绍，编译时应视具体情况，参考帮助的内容再加以选择。</p>
<p>1. Code maturity level options<br />
　　代码成熟等级。此处只有一项：prompt for development and/or incomplete code/drivers，如果你要试验现在仍处于实验阶段的功能，比如khttpd、IPv6等，就必须把该项选择为Y了；否则可以把它选择为N。</p>
<p>2. Loadable module support<br />
　　对模块的支持。这里面有三项：</p>
<p>　　Enable loadable module support：除非你准备把所有需要的内容都编译到内核里面，否则该项应该是必选的。<br />
　　Set version inFORMation on all module symbols：可以不选它。<br />
　　Kernel module loader：让内核在启动时有自己装入必需模块的能力，建议选上。</p>
<p>3. Processor type and features<br />
　　CPU类型。内容蛮多的，不一一介绍了，有关的几个如下：</p>
<p>　　Processor family：根据你自己的情况选择CPU类型。<br />
　　High Memory Support：大容量内存的支持。可以支持到4G、64G，一般可以不选。<br />
　　Math emulation：协处理器仿真。协处理器是在386时代的宠儿，现在早已不用了。<br />
　　MTTR support：MTTR支持。可不选。<br />
　　Symmetric multi-processing support：对称多处理支持。除非你富到有多个CPU，否则就不用选了。</p>
<p>4. General setup<br />
　　这里是对最普通的一些属性进行设置。这部分内容非常多，一般使用缺省设置就可以了。下面介绍一下经常使用的一些选项：</p>
<p>　　Networking support：网络支持。必须，没有网卡也建议你选上。<br />
　　PCI support：PCI支持。如果使用了PCI的卡，当然必选。<br />
　　PCI access mode：PCI存取模式。可供选择的有BIOS、Direct和Any，选Any吧。<br />
　　Support for hot-pluggabel devices：热插拔设备支持。支持的不是太好，可不选。<br />
　　PCMCIA/CardBus support：PCMCIA/CardBus支持。有PCMCIA就必选了。<br />
　　System V IPC<br />
　　BSD Process Accounting<br />
　　Sysctl support：以上三项是有关进程处理/IPC调用的，主要就是System V和BSD两种风格。如果你不是使用BSD，就按照缺省吧。<br />
　　Power Management support：电源管理支持。<br />
　　Advanced Power Management BIOS support：高级电源管理BIOS支持。</p>
<p>5. Memory Technology Device（MTD）<br />
　　MTD设备支持。可不选。</p>
<p>6. Parallel port support<br />
　　并口支持。如果不打算使用串口，就别选了。</p>
<p>7. Plug and Play configuration<br />
　　即插即用支持。虽然linux对即插即用目前支持的不如Windows好，但是还是选上吧，这样你可以拔下鼠标之类的体验一下Linux下即插即用的感觉。</p>
<p>8. Block devices<br />
　　块设备支持。这个就得针对自己的情况来选了，简单说明一下吧：</p>
<p>　　Normal PC floppy disk support：普通PC软盘支持。这个应该必选。<br />
　　XT hard disk support：<br />
　　Compaq ***ART2 support：<br />
　　Mulex DAC960/DAC1100 PCI RAID Controller support：RAID镜像用的。<br />
　　Loopback device support：<br />
　　Network block device support：网络块设备支持。如果想访问网上邻居的东西，就选上。<br />
　　Logical volume manager（LVM）support：逻辑卷管理支持。<br />
　　Multiple devices driver support：多设备驱动支持。<br />
　　RAM disk support：RAM盘支持。</p>
<p>9. Networking options<br />
　　网络选项。这里配置的是网络协议。内容太多了，不一一介绍了，自己看吧，如果你对网络协议有所了解的话，应该可以看懂的。如果懒得看，使用缺省选项（肯定要选中TCP/IP networking哦）就可以了。让我们看看，TCP/IP、ATM、IPX、DECnet、Appletalk&#8230;&#8230;支持的协议好多哦，IPv6也支持了，Qos and/or fair queueing（服务质量公平调度）也支持了，还有kHTTPd，不过这些都还在实验阶段。</p>
<p>10. Telephony Support<br />
　　电话支持。linux下可以支持电话卡，这样你就可以在IP上使用普通的电话提供语音服务了。记住，电话卡可和modem没有任何关系哦。</p>
<p>11. ATA/IDE/MFM/RLL support<br />
　　这个是有关各种接口的硬盘/光驱/磁带/软盘支持的，内容太多了，使用缺省的选项吧，如果你使用了比较特殊的设备，比如PCMCIA等，就到里面自己找相应的选项吧。</p>
<p>12. SCSI support<br />
　　SCSI设备的支持。我没有SCSI的设备，所以根本就不用选，如果你用了SCSI的硬盘/光驱/磁带等设备，自己找好了。</p>
<p>13. Fusion MPT device support<br />
　　需要Fusion MPT兼容PCI适配器，不用选。</p>
<p>14. I2O device support<br />
　　需要I2O接口适配器支持，在智能Input/Output（I2O）体系接口中使用。</p>
<p>15. Network device support<br />
　　网络设备支持。上面选好协议了，现在该选设备了，可想而知，内容肯定多得很。还好还好，里面大概分类了，有ARCnet设备、Ethernet（10 or 100 Mbit）、Ethernet（1000Mbit）、Wireless LAN（non-hamradio）、Token Ring device、Wan interfaces、PCMCIA network device support几大类。我用的是10/100M的以太网，看来只需要选则这个了。还是10/100M的以太网设备熟悉，内容虽然多，一眼就可以看到我所用的RealTeck RTL-8139 PCI Fast Ethernet Adapter support，为了免得麻烦，编译到内核里面好了，不选M了，选Y。耐心点，一般说来你都能找到自己用的网卡。如果没有，你只好自己到厂商那里去要驱动了。</p>
<p>16. Amateur Radio support<br />
　　配置业余无线广播。</p>
<p>17. IrDA（inf***ed）support<br />
　　红外线支持。</p>
<p>18. ISDN subsystem<br />
　　如果你使用ISDN上网，这个就必不可少了。</p>
<p>19. Old CD-ROM drivers（not SCSI、not IDE）<br />
　　做的可真周到，原来那些非SCSI/IDE口的光驱谁还在用啊，自己选吧，用IDE的CD-ROM不用选。</p>
<p>20. Character devices<br />
　　字符设备。这个内容又太多了，先使用缺省设置，需要的话自己就修改。把大类介绍一下吧：</p>
<p>　　I2C support：I2C是Philips极力推动的微控制应用中使用的低速串行总线协议。如果你要选择下面的Video For linux，该项必选。<br />
　　Mice：鼠标。现在可以支持总线、串口、PS/2、C&amp;T 82C710 mouse port、PC110 digitizer pad，自己根据需要选择。<br />
　　Joysticks：手柄。即使在linux下把手柄驱动起来意义也不是太大，游戏太少了。<br />
　　Watchdog Cards：虽然称为Cards，这个可以用纯软件来实现，当然也有硬件的。如果你把这个选中，那么就会在你的/dev下创建一个名为watchdog的文件，它可以记录你的系统的运行情况，一直到系统重新启动的1分钟左右。有了这个文件，你就可以恢复系统到重启前的状态了。<br />
　　Video For linux：支持有关的音频/视频卡。<br />
　　Ftape, the floppy tape device driver：<br />
　　PCMCIA character device support：</p>
<p>21. File systems<br />
　　文件系统。内容又太多了，老法子，在缺省选项的基础上进行修改。介绍以下几项：</p>
<p>　　Quota support：Quota可以限制每个用户可以使用的硬盘空间的上限，在多用户共同使用一台主机的情况中十分有效。<br />
　　DOS FAT fs support：DOS FAT文件格式的支持，可以支持FAT16、FAT32。<br />
　　ISO 9660 CD-ROM file system support：光盘使用的就是ISO 9660的文件格式。<br />
　　NTFS file system support：ntfs是NT使用的文件格式。<br />
　　/proc file system support：/proc文件系统是linux提供给用户和系统进行交互的通道，建议选上，否则有些功能没法正确执行。</p>
<p>　　还有另外三个大类都归到这儿了：Network File Systems（网络文件系统）、Partition Types（分区类型）、Native Language Support（本地语言支持）。值得一提的是Network File Systems里面的两种：NFS和***B分别是linux和Windows相互以网络邻居的形式访问对方所使用的文件系统，根据需要加以选择。</p>
<p>22. Console drivers<br />
　　控制台驱动。一般使用VGA text console就可以了，标准的80*25的文本控制台。</p>
<p>23. Sound<br />
　　声卡驱动。如果你能在列表中找到声卡驱动那自然最好，否则就试试OSS了。</p>
<p>24. USB supprot<br />
　　USB支持。很多USB设备，比如鼠标、调制解调器、打印机、扫描仪等，在linux都可以得到支持，根据需要自行选择。</p>
<p>25. Kernel hacking<br />
　　配置了这个，即使在系统崩溃时，你也可以进行一定的工作了。普通用户是用不着这个功能的。</p>
<p>　　配置完后，存盘退出，当然你也可以把现在的配置文件保存起来，这样下次再配置的时候就省力气了。</p>
<p>接下来是编译，输入以下命令。</p>
<p>#make dep<br />
#make clean<br />
#make bzImage或make zImage<br />
#make modules<br />
#make modules_install<br />
#depmod -a</p>
<p>　　第一个命令make dep实际上读取配置过程生成的配置文件，来创建对应于配置的依赖关系树，从而决定哪些需要编译而那些不需要；第二命令make clean完成删除前面步骤留下的文件，以避免出现一些错误；make zImage和make bzImage则实现完全编译内核，二者生成的内核都是使用g***压缩的，只要使用一个就够了，它们的区别在于使用make bzImage可以生成大一点的内核。建议大家使用make bzImage命令。<br />
　　后面三个命令只有在你进行配置的过程中，在回答Enable loadable module support (CONFIG_MODULES)时选了&#8221;Yes&#8221;才是必要的，make modules和make modules_install分别生成相应的模块和把模块拷贝到需要的目录中。<br />
　　严格说来，depmod -a命令和编译过程并没有关系，它是生成模块间的依赖关系，这样你启动新内核之后，使用modprobe命令加载模块时就能正确地定位模块。</p>
<p>更新</p>
<p>　　经过以上的步骤，我们终于得到了新版本的内核。为了能够使用新版本的内核，我们还需要做一些改动：</p>
<p>#cp /usr/src/linux/System.map /boot/System.map-2.4.18<br />
#cp /usr/src/linux/arch/i386/bzImage /boot/vmlinuz-2.4.18</p>
<p>　　以上这两个文件是我们刚才编译时新生成的。下面修改/boot下的两个链接System.map和vmlinuz，使其指向新内核的文件：</p>
<p>#cd /boot;rm -f System.map vmlinuz<br />
#ln -s vmlinuz-2.4.18 vmlinuz<br />
#ln -s System.map-2.4.18 System.map</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/69.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vista狂读硬盘vista硬盘灯狂闪解决方法</title>
		<link>http://www.tisswb.com/archives/19.html</link>
		<comments>http://www.tisswb.com/archives/19.html#comments</comments>
		<pubDate>Mon, 31 Mar 2008 04:45:24 +0000</pubDate>
		<dc:creator>笨二十一</dc:creator>
				<category><![CDATA[windows相关]]></category>
		<category><![CDATA[vista优化]]></category>

		<guid isPermaLink="false">http://www.tisswb.cn/?p=19</guid>
		<description><![CDATA[你使用Microsoft Windows Vista的时候遇到过系统狂读硬盘、硬盘灯狂闪的情况吗？是不是为你的硬盘感到心痛呢？那么可以试试下面的方法，保正让你的Vista安安静静的工作。
Win+R 运行以下命令：net stop sysmain
Vista瞬间就安静了。
如果还需要进一步的话，那么就照着下边的做吧
1. 关闭Volume Shadow Copy服务，在Vista里很多文件、文件夹看属性里都有一个 早期版本 选项，我想这个功能对绝大多数人都没有用吧？Win+R打开services.msc ，找到Volume Shadow Copy，设置为禁用
2. 关闭所有分区的系统还原：在我的电脑 属性 高级里关闭所有分区的系统还原
3. 关闭所有分区的 磁盘清理 计划任务，在盘符上点属性，找到磁盘整理，把“计划磁盘整理”的钩去掉
4. 关闭包含大块文件的文件压缩和索引，在盘符/文件夹上点右键，取消 索引文件以加快搜索速度，在文件夹上点右键，属性，高级，关闭 压缩文件以节省空间 索引文件以加快搜索速度
<span class="readmore"><a href="http://www.tisswb.com/archives/19.html" title="Vista狂读硬盘vista硬盘灯狂闪解决方法" target="_blank">阅读全文——共563字</a></span>]]></description>
			<content:encoded><![CDATA[<p>你使用Microsoft Windows Vista的时候遇到过系统狂读硬盘、硬盘灯狂闪的情况吗？是不是为你的硬盘感到心痛呢？那么可以试试下面的方法，保正让你的Vista安安静静的工作。</p>
<p>Win+R 运行以下命令：net stop sysmain</p>
<p>Vista瞬间就安静了。</p>
<p>如果还需要进一步的话，那么就照着下边的做吧</p>
<p>1. 关闭Volume Shadow Copy服务，在Vista里很多文件、文件夹看属性里都有一个 早期版本 选项，我想这个功能对绝大多数人都没有用吧？Win+R打开services.msc ，找到Volume Shadow Copy，设置为禁用</p>
<p>2. 关闭所有分区的系统还原：在我的电脑 属性 高级里关闭所有分区的系统还原</p>
<p>3. 关闭所有分区的 磁盘清理 计划任务，在盘符上点属性，找到磁盘整理，把“计划磁盘整理”的钩去掉</p>
<p>4. 关闭包含大块文件的文件压缩和索引，在盘符/文件夹上点右键，取消 索引文件以加快搜索速度，在文件夹上点右键，属性，高级，关闭 压缩文件以节省空间 索引文件以加快搜索速度</p>
<p>5. 关闭Windows Search服务。Windows Search 该索引的不索引，不该索引的给你索引一大堆。</p>
<p>6. ReadyBoost这个功能有的时候也比较消耗磁盘，弄得我硬盘哐当哐当响。</p>
<p>总之Windows Vista默认状态真的很伤磁盘，大家注意观察硬盘的指示灯就会发现。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tisswb.com/archives/19.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

