精华内容
下载资源
问答
  • PAGE 84 PAGE 93 第8章 函数的使用 范例119 使用时间和日期函数 119-1 计算程序运行时间 Sub MyTime) Dim i As Integer Dim StartTime As Single Dim EndTime As Single StartTime = Timer For i = 1 To 10000 Cells...
  • VBA初试

    2021-01-15 16:36:53
    为了爬取基金数据做下研究,就研究了一下如何用VBA爬取数据并展示在表格里,以下是成果: Sub zq() Dim url As String, tt As String, bondcode As String, n As Integer ' If Not IsEmpty(ActiveSheet....

    为了爬取基金数据做下研究,就研究了一下如何用VBA爬取数据并展示在表格里,以下是成果:

     

    Sub zq()
        Dim url As String, tt As String, bondcode As String, n As Integer
       ' If Not IsEmpty(ActiveSheet.UsedRange) Then ActiveSheet.UsedRange.Clear
          
          n = 1
          '如果第一列的基金代码为空,说明循环完了,停止循环
           Do While Cells(n, 1) <> ""
         
          
     
          With CreateObject("msxml2.xmlhttp")
            'bondcode = Range("A1")
           
            
            bondcode = Cells(n, 1)
           '从表格里取出来的基金代码会少了前面的0,用格式化把0补回来
             bondcode = Format(bondcode, "000000")
            '从接口地址取值
               url = "http://fundgz.1234567.com.cn/js/" + bondcode + ".js"
                .Open "GET", url, False
                .send
                tt = .responsetext
          '  tt = "<table class=""n_table m_table" & Split(Split(tt, "n_table m_table")(1), "</table>")(0) & "</table>"
             
               ' With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
               '     .SetText tt
               '     .PutInClipboard
               ' End With
                   tt = Split(Split(tt, "jsonpgz({""")(1), """});")(0)
                    arr = Split(tt, """,""")
                   '虽然切割出来了但是没有用的一堆变量
                   '基金代码
                   fundcode = Split(arr(0), ":""")(1)
                    '基金名称
                    Name = Split(arr(1), ":""")(1)
                   '单位净值
                    dwjz = Split(arr(3), ":""")(1)
                    '估算值
                    gsz = Split(arr(4), ":""")(1)
                    '估算波动率
                    gszzl = Split(arr(5), ":""")(1)
                    '日期
                    date1 = Split(arr(2), ":""")(1)
                    '时间
                    date2 = Split(arr(6), ":""")(1)
                    '
                    date1 = Split(arr(2), ":""")(1)
                    '
                    date2 = Split(arr(6), ":""")(1)
                    
                    With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
                    .SetText tt
                    .PutInClipboard
                End With
            
           ' [B1].Select: ActiveSheet.Paste
            Cells(n, 2).Select: ActiveSheet.Paste
         End With
        n = n + 1
             
        Loop
        MsgBox "获取完毕"
    End Sub
    

    上面的URL是获取实时净值的,还有个获取详细数据的接口http://fund.eastmoney.com/pingzhongdata/001186.js?v=20160518155842

     


    2021-01-18更新,发现上述方法会在跑程序的过程中持续占用电脑的剪贴板,所以修改了一下。不知道为啥原作者要通过剪贴板来赋值,我改成了取出相应的值之后直接赋值到单元格。

    Sub findData()
        Dim url As String, tt As String, bondcode As String, n As Integer, managerName As String, workTime As String
       ' If Not IsEmpty(ActiveSheet.UsedRange) Then ActiveSheet.UsedRange.Clear
          
          n = 1302
          Do While Cells(n, 2) <> ""
         
          
     
          With CreateObject("msxml2.xmlhttp")
            'bondcode = Range("A1")
           
            
            bondcode = Cells(n, 2)
            bondcode = Format(bondcode, "000000")
            '获取基金实时净值
            'url = "http://fundgz.1234567.com.cn/js/" + bondcode + ".js"
            '获取基金详细数据
            url = "http://fund.eastmoney.com/pingzhongdata/" + bondcode + ".js?v=20200518155842"
                .Open "GET", url, False
                .send
                tt = .responsetext
          '  tt = "<table class=""n_table m_table" & Split(Split(tt, "n_table m_table")(1), "</table>")(0) & "</table>"
             
               ' With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
               '     .SetText tt
               '     .PutInClipboard
               ' End With
    '               tt = Split(Split(tt, "jsonpgz({""")(1), """});")(0)
    '                arr = Split(tt, """,""")
    '
    '               '基金代码
    '               fundcode = Split(arr(0), ":""")(1)
    '                '基金名称
    '                Name = Split(arr(1), ":""")(1)
    '               '单位净值
    '                dwjz = Split(arr(3), ":""")(1)
    '                '估算值
    '                gsz = Split(arr(4), ":""")(1)
    '                '估算波动率
    '                gszzl = Split(arr(5), ":""")(1)
    '                '日期
    '                date1 = Split(arr(2), ":""")(1)
    '                '时间
    '                date2 = Split(arr(6), ":""")(1)
                    '基金经理名称
                   managerName = Split(Split(Split(tt, "现任基金经理")(1), "name")(1), ",")(0)
                    '基金经理任职时长
                   workTime = Split(Split(Split(tt, "现任基金经理")(1), "workTime")(1), ",")(0)
                   
                      Cells(n, 15).Value = managerName
                      Cells(n, 17).Value = workTime
            
           
         End With
        n = n + 1
             
        Loop
        MsgBox "获取完毕"
    End Sub
    
    

    2021.2.2 发现基金经理会有多个,之前的代码写的有点问题,又修改了一下

    Sub findData()
        'variances defination
        Dim url As String, tt As String, bondcode As String, n As Integer, managerName As String, workTime As String, fundSize As String, profitAtWork As String
        Dim averageProfit As String, profit300 As String, x As Integer, y As Integer
       ' If Not IsEmpty(ActiveSheet.UsedRange) Then ActiveSheet.UsedRange.Clear
          
          n = 83
          Do While Cells(n, 2) <> ""
         managerName = ""
         workTime = ""
         fundSize = ""
         profitAtWork = ""
         averageProfit = ""
         profit300 = ""
           With CreateObject("msxml2.xmlhttp")
            'bondcode = Range("A1")
           
            
            bondcode = Cells(n, 2)
            bondcode = Format(bondcode, "000000")
            '获取基金实时净值
            'url = "http://fundgz.1234567.com.cn/js/" + bondcode + ".js"
            '获取基金详细数据
            url = "http://fund.eastmoney.com/pingzhongdata/" + bondcode + ".js?v=20200518155842"
                .Open "GET", url, False
                .send
                tt = .responsetext
                '用star切割看下有几个经理
                x = UBound(Split(tt, "star"))
                y = 1
                'write several managers into the excel
                Do Until y > x
                   '基金经理名称
                   managerName = managerName + "&" + Split(Split(Split(tt, "现任基金经理")(1), "star")(y - 1), ":")(UBound(Split(Split(Split(tt, "现任基金经理")(1), "star")(y - 1), ":")))
                    '基金经理任职时长
                   workTime = workTime + "&" + Split(Split(Split(tt, "现任基金经理")(1), "workTime")(y), ",")(0)
                   '管理基金规模
                   fundSize = fundSize + "&" + Split(Split(tt, "fundSize")(y), "power")(0)
                   '任期收益
                   profitAtWork = profitAtWork + "&" + Split(Split(Split(tt, "任期收益")(y), "y")(1), "}")(0)
                   '同类平均
                   averageProfit = averageProfit + "&" + Split(Split(Split(tt, "任期收益")(y), "y")(2), "}")(0)
                   '同期沪深300收益
                   If (UBound(Split(Split(tt, "star")(y), "沪深")) > 0) Then profit300 = profit300 + "&" + Split(Split(Split(tt, "任期收益")(y), "y")(3), "}")(0)
                   
                  y = y + 1
                Loop
                
    '               tt = Split(Split(tt, "jsonpgz({""")(1), """});")(0)

    '                '基金经理名称
    '               managerName = managerName + "&" + Split(Split(Split(tt, "现任基金经理")(1), "name")(1), ",")(0)
    '                '基金经理任职时长
    '               workTime = workTime + "&" + Split(Split(Split(tt, "现任基金经理")(1), "workTime")(1), ",")(0)
    '               '管理基金规模
    '               fundSize = fundSize + "&" + Split(Split(tt, "fundSize")(1), "power")(0)
    '               '任期收益
    '               profitAtWork = profitAtWork + "&" + Split(Split(Split(tt, "任期收益")(1), "y")(1), "}")(0)
    '               '同类平均
    '               averageProfit = averageProfit + "&" + Split(Split(Split(tt, "任期收益")(1), "y")(2), "}")(0)
    '               '同期沪深300收益
    '               profit300 = profit300 + "&" + Split(Split(Split(tt, "任期收益")(1), "y")(3), "}")(0)
    '               '把基金经理名称写入剪贴板
    '                With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    '                .SetText managerName
    '                .PutInClipboard
    '                '把剪贴板的东西粘进去
    '                'Cells(n, 15).Select: ActiveSheet.Paste
    '                 End With
                      Cells(n, 15).Value = managerName
                      Cells(n, 17).Value = workTime
                      Cells(n, 18).Value = fundSize
                      Cells(n, 19).Value = profitAtWork
                      Cells(n, 20).Value = averageProfit
                      Cells(n, 21).Value = profit300
           ' [B1].Select: ActiveSheet.Paste
           
         End With
        n = n + 1
             
        Loop
        MsgBox "获取完毕"
    End Sub


    2021.2.2 还想要获取基金经理在当前基金的任职时长、任职期间收益,写了如下代码

    Sub findData()
        'variances defination
        Dim url As String, tt As String, bondcode As String, n As Integer, managerName As String, workTime As String, fundSize As String, profitAtWork As String
        Dim averageProfit As String, profit300 As String, x As Integer, y As Integer
       ' If Not IsEmpty(ActiveSheet.UsedRange) Then ActiveSheet.UsedRange.Clear
          
          n = 2192
          Do While Cells(n, 2) <> ""
         managerName = ""
         workTime = ""
         fundSize = ""
         profitAtWork = ""
         averageProfit = ""
         profit300 = ""
           With CreateObject("msxml2.xmlhttp")
            'bondcode = Range("A1")
           
            
            bondcode = Cells(n, 2)
            bondcode = Format(bondcode, "000000")
            '获取基金实时净值
            'url = "http://fundgz.1234567.com.cn/js/" + bondcode + ".js"
            '获取基金详细数据
            'url = "http://fund.eastmoney.com/pingzhongdata/" + bondcode + ".js?v=20200518155842"
            '获取基金经理任职信息
             url = "http://fund.eastmoney.com/" + bondcode + ".html?spm=aladin"
            
                .Open "GET", url, False
                .send
                tt = .responsetext
                '切割出基金成立日
                setUpDate = Split(Split(tt, "成 立 日")(1), "</td>")(0)
                messageShort = Split(tt, "fundManagerTab")(2)
                '用&切割看下有几个经理
                managerName = Cells(n, 16).Value
                x = UBound(Split(managerName, "&"))
                y = 0
                'write several managers into the excel
                Do Until y > x
                   theName = Split(managerName, "&")(y)
                    '基金经理当前基金任职时长
                   workTime = workTime + "&" + Split(Split(Split(messageShort, theName + "<")(1), "</td>")(1), ">")(1)
                  
                   '当前基金任职收益
                  profitAtWork = profitAtWork + "&" + Split(Split(Split(messageShort, theName + "<")(1), "</td>")(2), ">")(1)
                   y = y + 1
                   
                Loop
                
    '               tt = Split(Split(tt, "jsonpgz({""")(1), """});")(0)

    '                '基金经理名称
    '               managerName = managerName + "&" + Split(Split(Split(tt, "现任基金经理")(1), "name")(1), ",")(0)
    '                '基金经理任职时长
    '               workTime = workTime + "&" + Split(Split(Split(tt, "现任基金经理")(1), "workTime")(1), ",")(0)
    '               '管理基金规模
    '               fundSize = fundSize + "&" + Split(Split(tt, "fundSize")(1), "power")(0)
    '               '任期收益
    '               profitAtWork = profitAtWork + "&" + Split(Split(Split(tt, "任期收益")(1), "y")(1), "}")(0)
    '               '同类平均
    '               averageProfit = averageProfit + "&" + Split(Split(Split(tt, "任期收益")(1), "y")(2), "}")(0)
    '               '同期沪深300收益
    '               profit300 = profit300 + "&" + Split(Split(Split(tt, "任期收益")(1), "y")(3), "}")(0)
    '               '把基金经理名称写入剪贴板
    '                With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    '                .SetText managerName
    '                .PutInClipboard
    '                '把剪贴板的东西粘进去
    '                'Cells(n, 15).Select: ActiveSheet.Paste
    '                 End With
                      Cells(n, 4).Value = setUpDate
                      Cells(n, 17).Value = workTime
                      Cells(n, 18).Value = profitAtWork
           ' [B1].Select: ActiveSheet.Paste
           
         End With
        n = n + 1
             
        Loop
        MsgBox "获取完毕"
    End Sub


    想看基金18年的回撤情况 于是又找了个接口  说起来天天的接口也太好找了 没有啥反爬措施好像,下面是代码

    Sub findData()
        'variances defination
        Dim url As String, tt As String, bondcode As String, n As Integer, managerName As String, workTime As String, fundSize As String, profitAtWork As String
        Dim averageProfit As String, profit300 As String, x As Integer, y As Integer
       ' If Not IsEmpty(ActiveSheet.UsedRange) Then ActiveSheet.UsedRange.Clear
          
          n = 1742
          Do While Cells(n, 2) <> ""
         managerName = ""
         workTime = ""
         fundSize = ""
         profitAtWork = ""
         averageProfit = ""
         profit300 = ""
           With CreateObject("msxml2.xmlhttp")
            'bondcode = Range("A1")
           
            
            bondcode = Cells(n, 2)
            bondcode = Format(bondcode, "000000")
            '获取基金实时净值
            'url = "http://fundgz.1234567.com.cn/js/" + bondcode + ".js"
            '获取基金详细数据
            'url = "http://fund.eastmoney.com/pingzhongdata/" + bondcode + ".js?v=20200518155842"
            '获取基金经理任职信息
            'url = "http://fund.eastmoney.com/" + bondcode + ".html?spm=aladin"
            '获取基金各年度涨跌数据
             url = "http://fundf10.eastmoney.com/FundArchivesDatas.aspx?type=yearzf&code=" + bondcode + "&rt=0.8058049146914787"
                .Open "GET", url, False
                .send
                tt = .responsetext
                
                '18年回撤
                loseProfit = Split(Split(Split(tt, "阶段涨幅")(1), "</td>")(3), ">")(1)
               
                    
    '
    '               '把基金经理名称写入剪贴板
    '                With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    '                .SetText managerName
    '                .PutInClipboard
    '                '把剪贴板的东西粘进去
    '                'Cells(n, 15).Select: ActiveSheet.Paste
    '                 End With
                      Cells(n, 24).Value = loseProfit
                   
           ' [B1].Select: ActiveSheet.Paste
           
         End With
        n = n + 1
             
        Loop
        MsgBox "获取完毕"
    End Sub

    以下是用来替换单元格中内容的语句

    Range("AA1:AA713").Replace What:="<div class=*>", Replacement:="", LookAt:=xlPart

    展开全文
  • 我在网上查过,有说用isarray,isempty函数的。我实验了下,前真后假,没法判断。后来发现用 (not arr)是否为-1(if (not arr)<>-1 ) 这个方法可以,但具体不是很懂其原理,自己找相关资料又找不到。 因此,...
  • VBA内部函数

    2013-03-22 17:13:17
     在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。  一.测试函数  IsNumeric(x) ‘是否为数字, 返回Boolean结果,True or False  IsDate(x) ‘是否是日期, 返回Boolean结果...
    一:内部函数
      在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。

      一.测试函数

      IsNumeric(x) ‘是否为数字, 返回Boolean结果,True or False
      IsDate(x) ‘是否是日期, 返回Boolean结果,True or False
      IsEmpty(x) ‘是否为Empty, 返回Boolean结果,True or False
      IsArray(x) ‘指出变量是否为一个数组。
      IsError(expression) ‘指出表达式是否为一个错误值
      IsNull(expression) ‘指出表达式是否不包含任何有效数据 (Null)。
      IsObject(identifier) ‘指出标识符是否表示对象变量

      二.数学函数
      Sin(X)、Cos(X)、Tan(X)、Atan(x) 三角函数,单位为弧度
      Log(x) 返回x的自然对数
      Exp(x)返回 ex
      Abs(x) 返回绝对值
      Int(number)、Fix(number) 都返回参数的整数部分,区别:Int 将 -8.4 转换成 -9,而 Fix 将-8.4 转换成 -8
      Sgn(number) 返回一个 Variant (Integer),指出参数的正负号
      Sqr(number) 返回一个 Double,指定参数的平方根
      VarType(varname) 返回一个 Integer,指出变量的子类型
      Rnd(x)返回0-1之间的单精度数据,x为随机种子

      三.字符串函数

      Trim(string) 去掉string左右两端空白
      Ltrim(string) 去掉string左端空白
      Rtrim(string) 去掉string右端空白
      Len(string) 计算string长度
      Left(string, x) 取string左段x个字符组成的字符串
      Right(string, x) 取string右段x个字符组成的字符串
      Mid(string, start,x) 取string从start位开始的x个字符组成的字符串
      Ucase(string) 转换为大写
      Lcase(string) 转换为小写
      Space(x) 返回x个空白的字符串
      Asc(string) 返回一个 integer,代表字符串中首字母的字符代码
      Chr(charcode) 返回 string,其中包含有与指定的字符代码相关的字符

      四.转换函数

      CBool(expression) 转换为Boolean型
      CByte(expression) 转换为Byte型
      CCur(expression) 转换为Currency型
      CDate(expression) 转换为Date型
      CDbl(expression) 转换为Double型
      CDec(expression) 转换为Decemal型
      CInt(expression) 转换为Integer型
      CLng(expression) 转换为Long型
      CSng(expression) 转换为Single型
      CStr(expression) 转换为String型
      CVar(expression) 转换为Variant型
      Val(string) 转换为数据型
      Str(number)   转换为String

      五.时间函数

      Now 返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。
      Date 返回包含系统日期的 Variant (Date)。
      Time 返回一个指明当前系统时间的 Variant (Date)。
      Timer 返回一个 Single,代表从午夜开始到现在经过的秒数。
      TimeSerial(hour, minute, second) 返回一个 Variant (Date),包含具有具体时、分、秒的时间。
      DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目
      Second(time) 返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一分钟之中的某个秒
      Minute(time) 返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一小时中的某分钟
      Hour(time) 返回一个 Variant (Integer),其值为 0 到 23 之间的整数,表示一天之中的某一钟点
      Day(date) 返回一个 Variant (Integer),其值为 1 到 31 之间的整数,表示一个月中的某一日
      Month(date) 返回一个 Variant (Integer),其值为 1 到 12 之间的整数,表示一年中的某月
      Year(date) 返回 Variant (Integer),包含表示年份的整数。
      Weekday(date, [firstdayofweek]) 返回一个 Variant (Integer),包含一个整数,代表某个日期是星期几
    展开全文
  • Excel VBA内部函数大全

    千次阅读 2017-06-19 17:54:02
    VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。 一.测试函数 IsNumeric(x) ‘是否为数字, 返回Boolean结果,True or False IsDate(x) ‘是否是日期, 返回Boolean结果,True ...

    在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。

    一.测试函数

    IsNumeric(x) ‘是否为数字, 返回Boolean结果,True or False

    IsDate(x) ‘是否是日期, 返回Boolean结果,True or False

    IsEmpty(x) ‘是否为Empty, 返回Boolean结果,True or False

    IsArray(x) ‘指出变量是否为一个数组。

    IsError(expression) ‘指出表达式是否为一个错误值

    IsNull(expression) ‘指出表达式是否不包含任何有效数据 (Null)。

    IsObject(identifier)‘指出标识符是否表示对象变量

    二.数学函数

    Sin(X)、Cos(X)、Tan(X)、Atan(x) 三角函数,单位为弧度

    Log(x) 返回x的自然对数

    Exp(x)返回 ex

    Abs(x) 返回绝对值

    Int(number)、Fix(number) 都返回参数的整数部分,区别:Int 将 -8.4 转换成 -9,而 Fix 将-8.4 转换成 -8

    Sgn(number) 返回一个 Variant (Integer),指出参数的正负号

    Sqr(number) 返回一个 Double,指定参数的平方根

    VarType(varname) 返回一个 Integer,指出变量的子类型

    Rnd(x)返回0-1之间的单精度数据,x为随机种子

    三.字符串函数

    Trim(string) 去掉string左右两端空白

    Ltrim(string) 去掉string左端空白

    Rtrim(string) 去掉string右端空白

    Len(string) 计算string长度

    Left(string, x) 取string左段x个字符组成的字符串

    Right(string, x) 取string右段x个字符组成的字符串

    Mid(string, start,x) 取string从start位开始的x个字符组成的字符串

    Ucase(string) 转换为大写

    Lcase(string) 转换为小写

    Space(x) 返回x个空白的字符串

    Asc(string) 返回一个 integer,代表字符串中首字母的字符代码

    Chr(charcode) 返回 string,其中包含有与指定的字符代码相关的字符

    四.转换函数

    CBool(expression) 转换为Boolean型

    CByte(expression) 转换为Byte型

    CCur(expression) 转换为Currency型

    CDate(expression) 转换为Date型

    CDbl(expression) 转换为Double型

    CDec(expression) 转换为Decemal型

    CInt(expression) 转换为Integer型

    CLng(expression) 转换为Long型

    CSng(expression) 转换为Single型

    CStr(expression) 转换为String型

    CVar(expression) 转换为Variant型

    Val(string) 转换为数据型

    Str(number) 转换为String

    五.时间函数

    Now 返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。

    Date 返回包含系统日期的 Variant (Date)。

    Time 返回一个指明当前系统时间的 Variant (Date)。

    Timer 返回一个 Single,代表从午夜开始到现在经过的秒数。

    TimeSerial(hour, minute, second) 返回一个 Variant (Date),包含具有具体时、分、秒的时间。

    DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目

    Second(time) 返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一分钟之中的某个秒

    Minute(time) 返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一小时中的某分钟

    Hour(time) 返回一个 Variant (Integer),其值为 0 到 23 之间的整数,表示一天之中的某一钟点

    Day(date) 返回一个 Variant (Integer),其值为 1 到 31 之间的整数,表示一个月中的某一日

    Month(date) 返回一个 Variant (Integer),其值为 1 到 12 之间的整数,表示一年中的某月

    Year(date) 返回 Variant (Integer),包含表示年份的整数。

    Weekday(date, [firstdayofweek]) 返回一个 Variant (Integer),包含一个整数,代表某个日期是星期几


    展开全文
  • VBA 合并单元格

    2012-07-24 15:35:05
    Sub a() Application.DisplayAlerts = False Dim i As Integer: i = 3 Do While Not IsEmpty(ActiveSheet.Cells(i, 1)) If ActiveSheet.Cells(i, 1) = ActiveSheet.Cells(i - 1, 1) Then Call b(i - 1, i) End If i
    Sub a()
    Application.DisplayAlerts = False
    Dim i As Integer: i = 3
    Do While Not IsEmpty(ActiveSheet.Cells(i, 1))
    If ActiveSheet.Cells(i, 1) = ActiveSheet.Cells(i - 1, 1) Then
    Call b(i - 1, i)
    End If
    i = i + 1
    Loop
    Application.DisplayAlerts = True
    End Sub
    
    Sub b(ByVal r1 As Integer, ByVal r2 As Integer)
    For i = 65 To 77
    Sheet1.Range(Chr(i) & r1 & ":" & Chr(i) & r2).Merge
    Next
    End Sub
    展开全文
  • VBA实用代码拾零

    千次阅读 2007-04-20 21:03:00
    工作中,我们经常需要实用VBA来完成我们的任务,但有时候我们并不能完全把握VBA的精髓,走了些弯路。比如,我以前判断一个表的最后一行使用的是这个办法:i=3do while not(isempty(sheets("工作表名").cells(i,1)....
  • 第14集 单元格的格式 47、 判断是否为空单元格 Sub d1() [b1] = “” ...If VBA.IsEmpty([a1]) Then [b1] = “空值” End If End Sub 48、 判断是否为数值 Sub d2() [b2] = “” If VBA.IsNumeric([a2])...
  • vba判断数据类型函数

    千次阅读 2014-07-02 19:10:49
    IsNumeric 判断变量的值是否为数值 isdate 判断变量的值是否为日期...isempty 判断变量的值是否为空 IsArray 判断出变量是否为一个数组。 IsError 判断变量是否返回的是一个错误值 IsObject 判断变量是否表示对象变量
  • Excel_VBA_矩阵转为列

    2020-09-23 22:57:19
    Sub 矩阵转列() ' ' 矩阵转列 宏 ' Dim i, m, n As Long i = 1 For m = 1 To "LastRowCount" ... If Not IsEmpty(Cells(m, n)) Then Cells(i, 8) = Cells(m, n).Value i = i + 1 End If Next Next
  • 计算加权平均-vba

    千次阅读 2011-01-17 15:21:00
    Sub 计算加权() Dim rng As Range Dim sht As Worksheet Dim a%, b%, k%, i%, j% For Each sht In Sheets ... For Each rng In sht.Range("H6:H469") ... If IsEmpty(rng) = True Then b = rng.Row
  • Attribute VB_Name = "Excel" Option Explicit '設定引用項目-VBA-引用Excel避免版本不合的問題,原理就是做一個叫做Excel的類別(模組)來仿真 ...If VBA.IsEmpty(app) Then Class_Initialize Set Applicatio
  • 代码如下: Sub 替换() ' 表制作循环sheet页变量 i = 2 ' 词根循环变量 j = 2 '替换后字符串 replaceStr = "" ... Do While Not IsEmpty(Cells(i, 1)) ' 单元格的值赋值给变量 fromStr = Cells(i, 1
  • Sub delSheet() Dim x As Worksheet ... If IsEmpty(x.UsedRange) And x.Shapes.Count = 0 Then x.Delete Next x End Sub 程序如上,笔者使用EXCEL2007,上百个工作表中删除空白无内容的SHEET。 ...
  • 变量类型 用TypeName()函数可以判断变量类型。 TypeName(i)="Single" 就是单精度浮点数 TypeName(i)="String" 就是字符串 另外 ...isempty 判断变量的值是否为空 IsArray 判断出变量是否为一...
  • Option Explicit Sub main() Dim xmlfiles, i xmlfiles = GetXmlFiles... If IsEmpty(xmlfiles) Then Exit Sub For i = LBound(xmlfiles) To UBound(xmlfiles) FillBlock xmlfiles(i) Next End Su.
  • EXcel VBA从一个工作簿的指定区域拷贝内容到另一个工作簿的指定区域) Sub createtable() Dim Quantity As Long Dim loop_i As Long Dim position As String Quantity = ActiveSheet.Range("D45") If IsEmpty(Range...
  • IsEmpty 函数 返回 Boolean 值,指出变量是否已经初始化。 【语法】 IsEmpty(expression) 必要的 expression 参数是一个 Variant,包含一个数值或字符串表达式(实际上还可以是单元格)。但是,因为 IsEmpty 被...
  • 可能存在VBA自动类型转换的情况 IsDate() 判断变量是否为日期 无 IsNull() 判断变量是否包含任何有效数据 无 IsEmpty() 判断变量是否为空 无 IsArray() 判断变量是否为一个数组 ...
  • s probably very subjective, but maybe the VBA veterans here know something I do not. <p>Because of my background primarily from C++ I have a need to distinguish between a member function call ...
  • If IsEmpty(Values()) Then 'raise an error End if ResultString= theFormat For Each Element In Values FormatLocation=InStr(ResultString,"%") ResultString=Left$(ResultString,FormatLocation-1)&...
  • 'ExcelHome VBA编程学习与实践 Dim Trow&, k&, arr, brr, i&, j&, book&, a& Dim p$, f$, Rng As Range With Application.FileDialog(msoFileDialogFolderPicker) '取得用户选择的文件夹路径 ....
  • VBSCRIPT中文手册

    热门讨论 2010-11-12 10:13:06
    IsEmpty 函数 返回 Boolean 值,表示变量是否已被初始化。 IsNull 函数 返回 Boolean 值,表示表达式是否含有无效数据 (Null)。 IsNumeric 函数 返回 Boolean 值,表示表达式能否当作一个数,用来计算。 IsObject...
  • vb Script参考文档

    2009-07-28 22:13:02
    IsEmpty 函数 返回 Boolean 值,表示变量是否已被初始化。 IsNull 函数 返回 Boolean 值,表示表达式是否含有无效数据 (Null)。 IsNumeric 函数 返回 Boolean 值,表示表达式能否当作一个数,用来计算。 IsObject...
  • VBSCRIP5 -ASP用法详解

    2010-09-23 17:15:46
    IsEmpty 函数 返回 Boolean 值,表示变量是否已被初始化。 IsNull 函数 返回 Boolean 值,表示表达式是否含有无效数据 (Null)。 IsNumeric 函数 返回 Boolean 值,表示表达式能否当作一个数,用来计算。 IsObject...
  • IsEmpty 函数 返回 Boolean 值,表示变量是否已被初始化。 IsNull 函数 返回 Boolean 值,表示表达式是否含有无效数据 (Null)。 IsNumeric 函数 返回 Boolean 值,表示表达式能否当作一个数,用来计算。 IsObject...
  • VBScript 语言参考

    2008-10-07 21:30:05
    IsEmpty 函数 返回 Boolean 值,表示变量是否已被初始化。 IsNull 函数 返回 Boolean 值,表示表达式是否含有无效数据 (Null)。 IsNumeric 函数 返回 Boolean 值,表示表达式能否当作一个数,用来计算。 IsObject...

空空如也

空空如也

1 2
收藏数 30
精华内容 12
关键字:

isemptyvba