| 
积分1952明经币 个注册时间2012-9-5在线时间 小时威望 金钱 个贡献 激情  
 | 
 
 发表于 2012-9-24 18:00:54
|
显示全部楼层 
| 33楼代码有点小问题,现传上新代码:  Sub aa()
Dim arr()
Dim xls As Excel.Application
Set xls = New Excel.Application
Dim s As AcadText
Dim str As String
Dim returnPnt As Variant
Dim mt As AcadMText
Dim ss As AcadSelectionSet
Set ss = ThisDrawing.SelectionSets.Add(Rnd() & "ffdfdfd")
Dim gpCode(0) As Integer
Dim dataValue(0) As Variant
gpCode(0) = 0
dataValue(0) = "text"
ss.SelectOnScreen gpCode, dataValue
s1 = UCase(InputBox("赋最大值给:"))
s2 = UCase(InputBox("赋第二大值给:"))
s3 = UCase(InputBox("赋第三大值给:"))
For i = 1 To ss.Count
Set s = ss(i - 1)
If IsNumeric(s.TextString) Then
cnt = cnt + 1
ReDim Preserve arr(1 To cnt)
arr(cnt) = --s.TextString
End If
Next
max1 = xls.Large(arr, 1) + xls.Large(arr, 6)
max2 = xls.Large(arr, 2) + xls.Large(arr, 5)
max3 = xls.Large(arr, 3) + xls.Large(arr, 4)
brr = Array(max1, max2, max3)
On Error Resume Next
For i = 7 To UBound(arr) Step 3
imax1 = 0
imax2 = 0
imax3 = 0
  For j = 1 To 3
    If brr(j - 1) >= max3 Then imax3 = imax3 + 1
    If brr(j - 1) >= max2 Then imax2 = imax2 + 1
    If brr(j - 1) >= max1 Then imax1 = imax1 + 1
  Next
max3 = max3 + xls.Large(arr, 3 - imax3 + i)
max2 = max2 + xls.Large(arr, (3 - imax2) + i)
max1 = max1 + xls.Large(arr, 3 - imax1 + i)
brr = Array(max1, max2, max3)
Next
str = s1 & "的和:" & max1 & Chr(10) & s2 & "的和:" & max2 & Chr(10) & s3 & "的和:" & max3
returnPnt = ThisDrawing.Utility.GetPoint(, "请点击获取插入点")
 Set mt = ThisDrawing.ModelSpace.AddMText(returnPnt, 5000, str)
 mt.Height = 300
End Sub
 | 
 |