找回密码
 加入
搜索
查看: 4933|回复: 9

[AU3基础] [已解决]请问如何用Au3判断EXCEL工作表中是否存在云形标注

  [复制链接]
发表于 2015-1-29 08:04:34 | 显示全部楼层 |阅读模式
本帖最后由 tegl 于 2015-2-4 17:09 编辑

请问如何用Au3判断EXCEL工作表中是否存在云形标注,并获取标注中的内容(2015年),如图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-1-29 20:49:09 | 显示全部楼层
$xls=ObjGet(@ScriptDir&"\1.xls")
If IsObj($xls) Then
        With $xls
                For $ws In .worksheets
                        If $ws.shapes.count>0 Then
                                For $sh In $ws.shapes
                                        If $sh.type=1 Then
                                                If $sh.autoshapetype=108 Then
                                                        ConsoleWrite($sh.parent.name&"!"&$sh.topleftcell.address&@tab&$sh.textframe2.textrange.text&@CRLF)
                                                EndIf
                                        EndIf
                                Next
                        EndIf
                Next
        EndWith
        $xls.close(False)
EndIf
这个试下

评分

参与人数 2金钱 +20 贡献 +2 收起 理由
zldfsz + 10 + 2 厉害,经常看到解答问题
tegl + 10 感谢

查看全部评分

 楼主| 发表于 2015-1-29 22:18:44 | 显示全部楼层
本帖最后由 tegl 于 2015-1-29 22:21 编辑

回复 2# kevinch

能获取到地址,但$sh.textframe2.textrange.text不起作用,即读不出标注的内容
 楼主| 发表于 2015-1-29 22:42:42 | 显示全部楼层
Sub Macro1()
'
' Macro1 Macro
' 宏由 China 录制,时间: 2015/1/29
'

'
    ActiveSheet.Shapes.AddShape(msoShapeCloudCallout, 342#, 262.5, 72.75, 21#) _
        .Select
    Selection.Characters.Text = "2015年"
    With Selection.Characters(Start:=1, Length:=4).Font
        .Name = "宋体"
        .FontStyle = "常规"
        .Size = 12
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
End Sub
这是录制的宏,麻烦k大看看
发表于 2015-1-30 06:42:23 | 显示全部楼层
我这边是正常取出来的,不知道楼主那里什么 情况
 楼主| 发表于 2015-1-30 07:54:40 | 显示全部楼层
得到的结果是
Sheet1!$G$1       
没有标注的内容

我的是win8.1 update3,autoit 3.3.12.0
发表于 2015-1-31 06:09:22 | 显示全部楼层
我的也是win8.1 update3 64位, autoit 3.3.7.18,office 2013,感觉没太大差异啊
 楼主| 发表于 2015-1-31 18:35:52 | 显示全部楼层
是office版本的问题,我的是Office 2003,升级到office 2013后可以读取标注内容,但换回office 2003后仍然不行,估计是office 2003不支持.textframe2.textrange.text,请k大帮忙解决,万分感谢!
发表于 2015-2-2 20:26:50 | 显示全部楼层
03用.textframe.characters.text试一下

评分

参与人数 1金钱 +10 收起 理由
tegl + 10

查看全部评分

 楼主| 发表于 2015-2-3 21:44:01 | 显示全部楼层
回复 9# kevinch

问题解决,Office 2003、2013均好用,非常感谢K大
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-28 03:46 , Processed in 0.207787 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表