<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Paladin.Lao的VSTO/VBA专栏]]></title><description><![CDATA[欢迎光临我的个人网站 laoyebin.com]]></description><link>https://blog.csdn.net/laoyebin</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; laoyebin]]></copyright><item><title><![CDATA[聊聊最近的CPA心得吧]]></title><link>https://blog.csdn.net/laoyebin/article/details/9097421</link><guid>https://blog.csdn.net/laoyebin/article/details/9097421</guid><author>laoyebin</author><pubDate>Fri, 14 Jun 2013 19:23:06 +0800</pubDate><description><![CDATA[不知不觉都快要3个月没更新博客了，一是懒，二是没啥时间，三是主要原因——没啥好写的东西。
相信很多博客主都和我一样，写着写着就没啥激情了，从一开始的每天更新，到每3天更新，然后每周更新，再然后个把月才更新一次，后来是随性而至，哪天突然想起就写上一篇。其实，更多时候不是不想写，而是写不出，随便写写吧，那种垃圾文章简直就是侮辱读者的眼球，不写吧，Google、百度权重越来越低，实在也是挺难的说。]]></description><category></category></item><item><title><![CDATA[成功申请到ClickDealer联盟]]></title><link>https://blog.csdn.net/laoyebin/article/details/8648767</link><guid>https://blog.csdn.net/laoyebin/article/details/8648767</guid><author>laoyebin</author><pubDate>Thu, 07 Mar 2013 23:37:29 +0800</pubDate><description><![CDATA[今年开年，决定专注于国外CPA，经过半个多月的泡论坛+找资料+Google，大概也学了个差不多，所以从这个礼拜开始，陆续向几个评价不错的联盟递了申请。

第一个是PeerFly联盟，在affpaying的评价是非常不错的，而且听说offer多、单价不错、AM人也蛮好，首先就申请了它。也怪我不好，LP没建的漂亮点，而且注册时候的介绍也写的简单了点，第二天就悲剧了。

第二个是CubeCPA联]]></description><category></category></item><item><title><![CDATA[导出Outlook里的全球通讯录到Excel]]></title><link>https://blog.csdn.net/laoyebin/article/details/6187523</link><guid>https://blog.csdn.net/laoyebin/article/details/6187523</guid><author>laoyebin</author><pubDate>Wed, 16 Feb 2011 11:29:00 +0800</pubDate><description><![CDATA[<br /> <br />最近整理硬盘文件，发现一个Outlook里的全球通讯录到Excel的代码，但不知道这个文件是什么时候下的了，谨向原作者致敬。<br />注意：<br />1、这个代码是写在Excel的模块里的。<br />2、通讯录中联系人个数多的话，可能时间有点长<br /> <br />Const CdoAddressListGAL = 0
Const CdoUser = 0
Const CdoRemoteUser = 6
#Const EarlyBind = True
Sub App]]></description><category></category></item><item><title><![CDATA[提取Excel、Word、PPT文件中的Flash文件的两种方法]]></title><link>https://blog.csdn.net/laoyebin/article/details/6177663</link><guid>https://blog.csdn.net/laoyebin/article/details/6177663</guid><author>laoyebin</author><pubDate>Thu, 10 Feb 2011 20:04:00 +0800</pubDate><description><![CDATA[<br /> 方法一：VBA代码法<br />新建一个文件，然后拷贝以下代码到VBA模块中，运行代码，选择含有Flash的Excel文件确定，即可获取swf文件。<br /> <br /> <br />Sub ExtractFlash()
    Dim tmpFileName As String
    Dim FileNumber As Integer
    Dim myFileId As Long
    Dim MyFileLen As Long
    Dim myIndex As L]]></description><category></category></item><item><title><![CDATA[介绍一个文本连接的自定义函数：contxt]]></title><link>https://blog.csdn.net/laoyebin/article/details/5999247</link><guid>https://blog.csdn.net/laoyebin/article/details/5999247</guid><author>laoyebin</author><pubDate>Wed, 10 Nov 2010 10:35:00 +0800</pubDate><description><![CDATA[<br />Excel自带的CONCATENATE函数虽然能连接文本，但却不能连接内存数组，论效果还没&这个连接符方便，实在是Excel里的第一大鸡肋。<br /><br />所以今天就介绍给大家我一直在用的文本连接的自定义函数–contxt 。<br /> <br />Function ConTxt(ParamArray args() As Variant) As Variant
Dim tmptext As Variant, i As Variant, cellv As Variant
Dim ce]]></description><category></category></item><item><title><![CDATA[VSTO/Excel：快速找出某一列中与指定单元格不同的数据]]></title><link>https://blog.csdn.net/laoyebin/article/details/5848359</link><guid>https://blog.csdn.net/laoyebin/article/details/5848359</guid><author>laoyebin</author><pubDate>Sun, 29 Aug 2010 21:47:00 +0800</pubDate><description><![CDATA[<br />private void button1_Click(object sender, EventArgs e)
{
    Excel.Range rng = null;
    rng = ((Excel.Range)this.Columns[1]).ColumnDifferences(Range["a2"]);
    rng.Select();
}
 <br /> <br />这个方法其实就是调用了F5定位里的columndifferences，但两者有一点不同的地方：定位里的C]]></description><category></category></item><item><title><![CDATA[VBA用字典来替代函数的Vlookup]]></title><link>https://blog.csdn.net/laoyebin/article/details/5794814</link><guid>https://blog.csdn.net/laoyebin/article/details/5794814</guid><author>laoyebin</author><pubDate>Sat, 07 Aug 2010 11:05:00 +0800</pubDate><description><![CDATA[<br />Excel里有Vlookup函数，查找匹配数据非常方便，在VBA里，也可以用worksheetfunction.vlookup方法来调用，今天我介绍一个另一种使用字典(dictionary)+数组的方法，速度也非常快。<br /> <br />数据源图片：<br /><br /> <br />代码：<br />Sub test()
    Dim data, temp, arr
    Dim d
    Dim i&, k&
    Set d = CreateObject("scri]]></description><category></category></item><item><title><![CDATA[Word里全角转换成半角]]></title><link>https://blog.csdn.net/laoyebin/article/details/5767581</link><guid>https://blog.csdn.net/laoyebin/article/details/5767581</guid><author>laoyebin</author><pubDate>Mon, 26 Jul 2010 23:21:00 +0800</pubDate><description><![CDATA[<br /> 上次写一篇文章，不小心开了全角，结果文章编辑完，惨不忍睹，然后就想自编个宏一次性转换。起先想到的当然是像Excel一样使用ASC函数，但发现VBA的ASC不是全半角转换的功能，晕死，只能网上找答案，终于，找到一个狼版以前发的回帖，完美解决。<br />代码如下：Sub SBC2DBC()
    ActiveDocument.Content.CharacterWidth = wdWidthHalfWidth
End Sub
 作者：laoyebin(Paladin.lao)博客园出处：h]]></description><category></category></item><item><title><![CDATA[VBA导入VFP的.dbf文件]]></title><link>https://blog.csdn.net/laoyebin/article/details/5767577</link><guid>https://blog.csdn.net/laoyebin/article/details/5767577</guid><author>laoyebin</author><pubDate>Mon, 26 Jul 2010 23:20:00 +0800</pubDate><description><![CDATA[<br /> Sub ImportVFPData()
    Dim i%, sql$
    Dim cn, rst
    Set cn = CreateObject("adodb.connection")
    Set rst = CreateObject("adodb.recordset")
    Dim sql As String
    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='dbase 5.0]]></description><category></category></item><item><title><![CDATA[用VBA导出Excel里的图表为JPG文件]]></title><link>https://blog.csdn.net/laoyebin/article/details/5741671</link><guid>https://blog.csdn.net/laoyebin/article/details/5741671</guid><author>laoyebin</author><pubDate>Sat, 17 Jul 2010 13:07:00 +0800</pubDate><description><![CDATA[<br /> Sub ExportChart()
    Dim myChart As Chart
    Dim myFileName As String
    Set myChart = Sheet1.ChartObjects(1).Chart
    myFileName = "myChart.jpg"
    On Error Resume Next
    Kill ThisWorkbook.Path & "/" & myFileName
    myChart.Export Fi]]></description><category></category></item><item><title><![CDATA[用VBA来关闭其他程序]]></title><link>https://blog.csdn.net/laoyebin/article/details/5732682</link><guid>https://blog.csdn.net/laoyebin/article/details/5732682</guid><author>laoyebin</author><pubDate>Tue, 13 Jul 2010 20:22:00 +0800</pubDate><description><![CDATA[<br />以关闭Winrar.exe为例，代码如下：<br />Sub closeWinrar()
    Dim oWMT As Object, oProcess As Object
    Set oWMT = GetObject("winmgmts://")
    For Each oProcess In oWMT.InstancesOf("Win32_Process")
        If LCase(oProcess.Name) = "winrar.exe" Then
      ]]></description><category></category></item><item><title><![CDATA[画四条直线然后组合成矩形]]></title><link>https://blog.csdn.net/laoyebin/article/details/5656858</link><guid>https://blog.csdn.net/laoyebin/article/details/5656858</guid><author>laoyebin</author><pubDate>Tue, 08 Jun 2010 22:09:00 +0800</pubDate><description><![CDATA[<br />private void button1_Click(object sender, EventArgs e)
{
    Excel.Shape lineA = Globals.Sheet1.Shapes.AddLine(25, 140, 495, 140);
    Excel.Shape lineB = Globals.Sheet1.Shapes.AddLine(495, 140, 495, 305);
    Excel.Shape lineC = Globals.Sheet1.S]]></description><category></category></item><item><title><![CDATA[C#与TXT文件的读写操作]]></title><link>https://blog.csdn.net/laoyebin/article/details/5652401</link><guid>https://blog.csdn.net/laoyebin/article/details/5652401</guid><author>laoyebin</author><pubDate>Mon, 07 Jun 2010 10:42:00 +0800</pubDate><description><![CDATA[static void Main(string[] args)
{
    string path = @"d:/1.txt";
    File.WriteAllText(path, "test1", Encoding.Default);                      //覆盖写入，无文件则创建
    File.AppendAllText(path, "/n" + "test2", Encoding.Default);       //追加写入
    Console.WriteL]]></description><category></category></item><item><title><![CDATA[VBA用shell命令来压缩文件]]></title><link>https://blog.csdn.net/laoyebin/article/details/5651847</link><guid>https://blog.csdn.net/laoyebin/article/details/5651847</guid><author>laoyebin</author><pubDate>Sun, 06 Jun 2010 23:06:00 +0800</pubDate><description><![CDATA[<br />Sub zipFile()
    Dim winrarPath$, fullname$, filename$, filePath
    winrarPath = "c:/program files/winrar/winrar.exe a -afzip "
    filePath = Application.GetOpenFilename
    If filePath <> False Then
        fullname = StrReverse(Split(StrRev]]></description><category></category></item><item><title><![CDATA[用Shell来运行dos下的ping命令]]></title><link>https://blog.csdn.net/laoyebin/article/details/5645858</link><guid>https://blog.csdn.net/laoyebin/article/details/5645858</guid><author>laoyebin</author><pubDate>Thu, 03 Jun 2010 22:06:00 +0800</pubDate><description><![CDATA[<br />Sub test()
    Shell "cmd.exe", vbNormalFocus
    SendKeys "  ping mrvsto.com" & "{ENTER}", 1
End Sub
 ]]></description><category></category></item><item><title><![CDATA[获取日历控件的选取值]]></title><link>https://blog.csdn.net/laoyebin/article/details/5638235</link><guid>https://blog.csdn.net/laoyebin/article/details/5638235</guid><author>laoyebin</author><pubDate>Mon, 31 May 2010 23:59:00 +0800</pubDate><description><![CDATA[VBA里直接用“Calendar.Value”就可以获取日历控件的值了，但VSTO里竟然没有这个属性。找了半天，原来要这样搞才行：]]></description><category></category></item><item><title><![CDATA[在Excel里发Twitter]]></title><link>https://blog.csdn.net/laoyebin/article/details/5568653</link><guid>https://blog.csdn.net/laoyebin/article/details/5568653</guid><author>laoyebin</author><pubDate>Fri, 07 May 2010 23:47:00 +0800</pubDate><description><![CDATA[Sub sendTweets()    Dim xml, sUsername$, sPassword$, sTweets$    Set xml = CreateObject("MSXML2.XMLHTTP")    sUsername = ""                       your username    sPassword = ""              ]]></description><category></category></item><item><title><![CDATA[获取Excel中的自定义序列]]></title><link>https://blog.csdn.net/laoyebin/article/details/5564664</link><guid>https://blog.csdn.net/laoyebin/article/details/5564664</guid><author>laoyebin</author><pubDate>Thu, 06 May 2010 21:10:00 +0800</pubDate><description><![CDATA[ private void button1_Click(object sender, EventArgs e){    for (int i = 1; i <= Application.CustomListCount; i++)    {        object obj = Application.GetCustomListContents(i);        Arr]]></description><category></category></item><item><title><![CDATA[VSTO运行VBA代码]]></title><link>https://blog.csdn.net/laoyebin/article/details/5540730</link><guid>https://blog.csdn.net/laoyebin/article/details/5540730</guid><author>laoyebin</author><pubDate>Wed, 28 Apr 2010 23:12:00 +0800</pubDate><description><![CDATA[ 昨天一个同事问我，怎么在VSTO的控件上运行工作簿中的VBA代码。这个很简单，VSTO提供了一个Run方法，可以直接运行Marco，就和你在VBA的一个过程里调用另一个过程一样。VSTO里的代码：private void button1_Click(object sender, EventArgs e){    Application.Run("test");} ]]></description><category></category></item><item><title><![CDATA[VSTO里转置C#数组]]></title><link>https://blog.csdn.net/laoyebin/article/details/5522211</link><guid>https://blog.csdn.net/laoyebin/article/details/5522211</guid><author>laoyebin</author><pubDate>Fri, 23 Apr 2010 20:47:00 +0800</pubDate><description><![CDATA[ 大家都知道，C#里没有直接的方法能转置一个数组，所以一般都用循环来完成。为此我上次专门在CSDN上发了个贴，询问VSTO里用C#有没有办法可以不用循环来转置数组，但没得到结果，为此我还抱怨了微软好久，C#的功能竟然还不及VBA。今天，突然闪过一个念头，VBA里可以调用EXCEL的工作表函数，那VSTO里是否也可以呢？试了一下，原来真可以，郁闷了，以前转了那么多弯路。测试代码如下：pr]]></description><category></category></item></channel></rss>