明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1665|回复: 10

[VBA群] 2013-05-19 明经AutoCAD.VBA编程(45054712) 群聊记录:想显示excel表中的列,用“A”,"B" "

 关闭 [复制链接]
发表于 2013-5-19 09:27:22 | 显示全部楼层 |阅读模式
在路上26 09:27:22
想显示excel表中的列,用“A”,"B"
"C",请问怎么读取啊??
CADExcelVBLisp 09:30:06
如果超过26列怎么处理?
在路上26 09:31:02
AX,AY,AZ,显示
CADExcelVBLisp 09:31:26
新版的几千列了。
小学生 09:31:30
看看excel中VBA对象模型
CADExcelVBLisp 09:31:40
还不是要编制过自定义函数转换一下撒。
在路上26 09:32:02
就是想让用户自主选择,想拷贝哪一列,
CADExcelVBLisp 09:32:24
你就是要数字表示列就是了。
在路上26 09:33:16
怎么设置用数字表示列啊??
CADExcelVBLisp 09:39:48
是不是将AS列表示为第45列,即将“AS”转成45?
CADExcelVBLisp 09:40:42
还是要将45转成“AS”?
 楼主| 发表于 2013-5-19 10:15:09 | 显示全部楼层
在路上26 10:15:09
将45,转成AS
Function getColumnLetter(ByVal myCol As Integer) As String  '获取单元格列标的字母
    Dim columnName As String
    Dim k As Integer
    k = (myCol - 1) \ 26
    Select Case k
        Case 0
        Case Else
            columnName = columnName & Chr(64 + k)
    End Select
    columnName = columnName & Chr(64 + ((myCol - 1) Mod 26) + 1)
    'MsgBox "列标号为 " & myCol & " 的单元格的列标字母为 " & columnName
   getColumnLetter = columnName
End Function
 楼主| 发表于 2013-5-19 10:25:30 | 显示全部楼层
CADExcelVBLisp 10:25:30
有局限,只能两个字母的
在路上26 10:28:32
怎么才能优化呢??
 楼主| 发表于 2013-5-19 10:48:54 | 显示全部楼层
回不去的旅人 10:48:54
直接用cells不行吗?
 楼主| 发表于 2013-5-19 11:34:42 | 显示全部楼层
在路上26 11:34:42
要获得A4单元格,用cel,还是Range啊
小学生 11:37:06
好象都可以
 楼主| 发表于 2013-5-19 12:12:19 | 显示全部楼层
回不去的旅人 12:12:19
都行,我喜欢用cells
在路上26 12:13:34
[qqimg]oldimg/{AD046FDD-E2E6-25A2-31EF-A8CAF28CDB9D}.jpg[/qqimg]
提示我错误啊
好象用cells,不行啊
 楼主| 发表于 2013-5-19 13:42:31 | 显示全部楼层
在路上26 13:42:31
已经知道excel表的“C"列,如何计算它的列值3呢??
Lee 13:43:51
在路上26 13:44:17
把C转换成3
把A,转换成1
Lee 13:45:32
c1 = R1C3
 楼主| 发表于 2013-5-19 13:55:54 | 显示全部楼层
一缕阳光 13:55:54
为什么要转呢?
Lee 13:56:23
要循环列么
一缕阳光 13:56:49
可以直接获取excel列 序号
[mccad]mccad 14:00:57
[luozh7682]筑路人 14:07:53
 楼主| 发表于 2013-5-19 18:50:57 | 显示全部楼层
狼图腾 18:50:57
Private Sub Command10_Click()
Dim dimobj As AcadDimAligned
Dim DD1 As Variant
Dim DD2 As Variant
DD1 = AutoCAD.Application.ActiveDocument.Utility.GetPoint(, "请输入点坐标") '捕捉第一点坐标
DD2 = AutoCAD.Application.ActiveDocument.Utility.GetPoint(, "请输入点坐标") '捕捉第二点坐标
Dim DD3(0 To 2) As Double
DD3(0) = (DD1(0) + DD2(0)) / 2: DD3(1) = (DD1(1) + DD2(1)) / 2: DD3(2) = (DD1(2) + DD2(2)) / 2
Set dimobj = AutoCAD.Application.ActiveDocument.ModelSpace.AcadDimAligned(DD1, DD2, DD3)
Dim length As Single
length = Sqr((DD2(0) - DD1(0)) ^ 2 + (DD2(1) - DD1(1)) ^ 2)
Form2.Text2.Text = Format(length, "0.0")
'添加公差
Dim TS As String
TS = "\A1;\H3.5;\U+2205" + Form2.Text2.Text + "\H0.75x;\S 0^-0.015;\P"
dimobj.TextOverride = TS
dimobj.Update
End Sub
 楼主| 发表于 2013-5-19 20:19:29 | 显示全部楼层
狼图腾 20:19:29
有谁可以告诉我用VBA编一个程序,拾取一个直径,然后改变这个直径的标注
狼图腾 20:20:17
谢谢大家
狼图腾 20:21:27
Public Function GetEntity(tDoc As AcadDocument, entObj As AcadEntity, ts As String) As Boolean
Dim pickPnt As Variant

On Error Resume Next
tDoc.Utility.GetEntity entObj, pickPnt, ts
If entObj Is Nothing Then
    GetEntity = False
Else
    GetEntity = True
End If
Err.Clear
End Function
可以帮我改改吗
我实在搞不出来了
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-23 07:01 , Processed in 0.315696 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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