RICVBA 发表于 2015-10-2 05:29:49

基于句柄修改EXCEL中的文本

你好
很抱歉,我绝对不是VBA专家。唐#039;这件事不要怪我
然而,我认为我有一个完美的宏应用程序,并尝试开发它…
我有一张ACAD绘图,其中包含1200个表示标记的独立文本项。我需要根据excel表中的不同值更新这些文本字符串
我所做的是导出excel表中每个字符串的文本字符串和句柄
因此,我的excel表如下所示:
列A:textstring。句柄B列:ACAD原始标记D列:要在ACAD中更新的标记值,因此,我的整个代码如下所示:[代码我确信我错的地方是它没有遍历列A的整个值范围来找到它的句柄,从而检索它所需的更新标记:
For Each tTextObj In tSelSet
If tTextObj.Handle = Excel.ActiveSheet.Cells(RowIndex, 1) Then
tTextObj.TextString = Excel.ActiveSheet.Cells(RowIndex, 2)
Next
End If
如果你能指导我怎么做,我将非常感激……谢谢你,文斯

RICVBA 发表于 2015-10-2 10:33:42

您可以使用类似于               
                With Excel.ActiveSheet
                  For Each tTextObj In tSelSet
                        RowCount = .Range("A" & .Rows.Count).End(xlUp).row
                        For RowIndex = 1 To RowCount
                            If tTextObj.Handle = .Cells(RowIndex, 1) Then
                              tTextObj.textString = .Cells(RowIndex, 4)
                              Exit For
                            End If
                        Next RowIndex
                  Next tTextObj
                End With 顺便说一句:你的整个代码必须比你发布的内容更多,因为有's缺失:
-;“AcadProgID”&引用;选择对象类型名称;和“;选择空间;初始化值 此外,对于更可读的代码I'd加上“;Excel“;变量声明和设置..或者您可以只使用;应用程序“;如果您'在Excel中重新运行此宏;showMsg“;sub2)即;错误时继续下一步“;EXPORTER sub开头的语句非常不安全,也可能是调试问题的障碍。您应该在需要的地方使用它,主要是在可能导致某些错误的语句之前,立即处理它们并放置一个;出错时转到0“;之后的声明

RICVBA 发表于 2015-10-2 15:28:02

你好Ricvba,我赢了#039;我不能在星期一之前在办公室发短信,但我赢了;我会及时通知你的。无论如何,谢谢你!祝你周末愉快

RICVBA 发表于 2015-10-5 06:30:37

Ricvba,就像一个魔咒。我真的很感激!

RICVBA 发表于 2015-10-5 15:31:34

很高兴有帮助,再见
页: [1]
查看完整版本: 基于句柄修改EXCEL中的文本