QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 1903|回复: 4
收起左侧

[已解决] 请教一个很弱的问题!关于VBA的

[复制链接]
发表于 2009-10-20 14:22:45 | 显示全部楼层 |阅读模式 来自: 中国湖北十堰

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
问题1.为什么在百度搜出来的VBA 都是用OFFICE的Excel 里的宏打开》??& T. M- S( J$ @
          我去试过了   大不开- t; N% }; L7 M$ K1 j- N
          然后用AUTOCAD里的宏可以打开       不过需要密码; d( X( w/ R+ E  @/ Q- b% {
问题2.怎么样可以CrackVBA的密码?有没有什么工具?(我现在要打开的VBA是我们公司一台数控冲床的CAD转换出NC程序的一个插件,不过里面设计有点不合理    我想修改它). W; y4 _3 f9 ]
请哪位高手帮帮忙
发表于 2009-10-20 15:54:16 | 显示全部楼层 来自: 中国
一、很多大型工具软件都有VBA,比如WORD、EXCEL、AutoCAD。VBA的全称是Visual Basic for Applications,这是微软开发的面向应用程序的VB编程开发环境,通俗点说就是VB框架搭配上应用程序内核。所以EXCEL的VBA和AutoCAD的VBA是不一样的。
- V- E0 z7 {0 Y0 L7 C二、VBA密码Crack,下载附件并按说明操作。# l" [5 v$ s1 j# f7 e- H. f! x* C
VBA.rar (1.19 MB, 下载次数: 13)

评分

参与人数 1三维币 +8 收起 理由
wang2003 + 8 好资料,感谢您对论坛的支持!

查看全部评分

发表于 2009-10-20 16:46:56 | 显示全部楼层 来自: 中国河北石家庄
老师真是高手,几乎没有不懂的问题。
 楼主| 发表于 2009-10-22 12:43:34 | 显示全部楼层 来自: 中国湖北十堰
谢谢版主!~   懂了0 p  f+ B  V4 z; z" X* _) H
附件我下了   希望可以解密码0 U: Q% t5 f; i! ^6 @
中午就不试了
% m! U! j1 F! H2 L; G晚上回来在试试3 F- E0 `9 e- P$ e) X  T; q
谢谢版主!~厉害
 楼主| 发表于 2009-10-22 12:55:03 | 显示全部楼层 来自: 中国湖北十堰
本来想晚上回来在试试的
& C0 j3 s( U" ^: j8 Y但是现在不试睡不着
7 d6 r5 n, x2 `" ]嘿嘿4 D9 T+ q7 R8 ~% G0 ?8 G/ o. Q

2 I$ D: m& r9 T/ R" Q试了试
: q1 u7 {5 G1 l7 L8 ]% C谢谢版主   打开了那个文件
& k# v8 P/ y! X2 I( B" K下面是代码5 }; G  d' A6 {$ V
'Declare Function GS_MHDog Lib "win32dll.dll" (DogData As MH_DLL_PARA) As Long
% t& R8 D2 x7 P  }'Declare Function InstDrv Lib "RCMicroDogSetup.dll" Alias "InstDriver" (ByVal a As Integer) As Integer' ^; T: f, v/ U3 H7 {) E* @/ b
'Declare Function UninstDrv Lib "RCMicroDogSetup.dll" Alias "UninstallDriver" (ByVal a As Integer) As Integer
& I/ E9 H' K* H$ h'Declare Function GetDogDriverInfo Lib "RCMicroDogSetup.dll" () As Long1 T8 y8 h: [0 P5 s4 s
'Declare Sub DriverDialog Lib "RCMicroDogSetup.dll" ()
2 g- e$ i  X/ i& l5 Z'Declare Function NotifyPullOutAndPlugInUsbDog Lib "RCMicroDogSetup.dll" (ByVal a As Integer) As Integer8 t# E9 ~8 n- ~& `9 ^) L0 T/ O$ c& p

3 I# x( ?( s* o$ b& ~8 `+ }'Declare Function yy Lib "jmcar.dll" () As Long
, K$ V5 s  }# G7 G# U6 i. d'Public xxx As New CAMZDSHXJ2 r7 G, m, ]5 h' f! B$ K
Const SYNCHRONIZE = &H100000& b& x5 n, t1 ]/ D
Const INFINITE = &HFFFFFFFF2 g2 [2 t; b/ f4 K; D* w3 C. q
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long# w: ?" L( X$ r5 H: W1 B' w
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long+ b4 v) M/ Z1 X' x# V* k
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long" k6 a. w( z  d) a7 w
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
3 v+ n; }! @. N& O
- _, N; _% T) q8 ]* ?, y! {Public Function getmac() As String
& s; m, T' q: l3 E Dim retval
8 q- f0 h% \4 [9 D1 ~ Dim pId As Long, pHnd As Long ' 分别声明 Process Id 及 Process Handle 变数
0 P% p/ a. u+ W( ]. R: n$ N Dim MYSTR, lstr As String
0 z, A9 y# c6 H8 `9 c If Dir("D:\cnc\hxj1.txt") = "" Then
' |3 H* w" ~/ G0 p% Q  Else
& u8 X$ `  G; p8 b) A5 X    Kill "d:\cnc\hxj1.txt "
; G8 B/ _" B, ^. K/ m; P% k  @  End If) g7 r8 S# b7 i$ T( ~1 N
  pId = Shell("cmd /C ipconfig /all > D:\CNC\hxj1.txt ", 0) ' Shell 传回 Process Id
$ V* e/ h" `* P: E  pHnd = OpenProcess(SYNCHRONIZE, 0, pId) ' 取得 Process Handle
. _& b/ R+ b8 o7 `( M! i* D7 H  If pHnd <> 0 Then' m' T. ?9 l+ B; L
    Call WaitForSingleObject(pHnd, INFINITE) ' 无限等待,直到程序结束
4 V8 S0 t$ x/ o( e/ O* z! }. A. i    Call CloseHandle(pHnd)
. e& j/ F4 {  S  End If; [( b0 D% a+ m$ |7 [/ l9 b
  Close
' g" B& H; O/ }  m; ~+ R  Open "d:\cnc\hxj1.txt " For Input As #38 U, Q- R/ f' u3 i% M0 C
  Do While Not EOF(3)9 K3 y; S( k! T1 \. v. _  d
    Line Input #3, lstr
( I5 E) v- c8 o: V7 R    If InStr(lstr, "Physical Address") > 1 Then
9 i5 h0 R- Z' ~) v      MYSTR = Split(lstr, ":", 2, 1)% |& r3 |" m. z% N1 T( Y5 t) Z
      getmac = MYSTR(1)
4 y* O* d5 I- C/ U4 Y. O6 E      Exit Do0 v" |: p4 j0 [* |7 S, X6 C  ^
    End If
! K7 {3 Z6 n/ d( E& x! Q   Loop1 y" r: {) ?! L4 z/ ]
  Close; ]* f( T0 |: X1 w
End Function
. n2 q6 C5 o8 f* [ Public Sub DelDoubleALL()  '删除重复图素# v7 }7 p/ S) S7 C+ v7 v
Dim i, j, k As Integer
/ ~( n9 e1 @* b7 {' m6 I, } Dim ssetObj As AcadSelectionSet
: h/ R$ w# a+ d+ v! J% G; n4 ]* [2 w Dim dege1 As Double, dege2 As Double) K: ^+ q4 V2 e5 d9 H# K& x" Y
Dim dege3 As Double, dege4 As Double
( S# v2 x+ Z' k' `" D' x Dim pt1 As Variant, pt2 As Variant, Yuanr As Double, yuanr2 As Double4 f( n% L* v) I  ]) {/ d. y3 Z
Dim pt10 As Variant, pt20 As Variant, Yuanr1 As Double' w2 Z9 x5 i; n' H
Dim ic As Integer
4 y3 d& r# E3 ^& ^9 w Dim str1 As String, str2 As String, id1 As String, id2 As String/ ^" Y( e0 o5 y/ K/ i  a, [
Dim EntName() As String, line1() As Variant, line2() As Variant$ t6 s8 ^# r- q2 s
Dim line3() As Double
& ^, U/ Y! e. r4 u2 r' \ Dim arc1() As Variant, arc2() As Double, arc3() As Double, arc4() As Double1 S$ n. B, c7 r' ^5 R5 m0 }
Dim cir1() As Variant, cir2() As Double, blk1() As Variant
; ?  {" d0 n  j( t3 x* L Dim blk2() As String
  y( S! Z7 W/ \; I, { ic = ThisDrawing.SelectionSets.Count '选择集的个数3 D. b( L4 r, }. T5 }2 s% H
If ic > 0 Then
  d2 k6 t7 }+ n6 h    For i = ic - 1 To 0 Step -1
/ v  w9 \' I1 Y8 z  V" w8 D        Set ssetObj = ThisDrawing.SelectionSets(i)* R5 Q, ?! |; f% r, k: w, r  W
        If ssetObj.Name = "SSSS" Then ssetObj.Delete '存在该选择集删除它+ t( D4 {# e* V; M& ^% R1 l
    Next
$ e- {5 C$ F: n% V9 dEnd If& ]/ U! i5 y3 l6 F2 Z5 X
    Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS")
. O% x: k/ n# [0 x8 H    ' Add objects to a selection set by prompting user to select on the screen
# e5 e% Y, R+ J* @. q+ }" I" A'    ssetObj.SelectOnScreen
9 E2 Y. x0 N# i, l2 V, T            ssetObj.Select acSelectionSetAll '把全部图形加入选择集* p% r$ t5 j. ]! ^; J: p
'            sele1.Select acSelectionSetAll, , , ft, fd  '层选择
) p, Y- x1 V- ?# ]7 A& a; e    On Error GoTo ccc1
) U% Y; o* }( m  o4 v    ic = ssetObj.Count - 1
" i" m- c$ e3 ^$ w1 i2 |, p% N    If ic < 1 Then '选择集孔或图素小于2则退出
0 o4 B' i" ^8 ]4 b     Exit Sub
: Y' W+ \  l# \    End If6 f( c, r" m7 B# v1 u2 W
    ReDim EntName(0 To ic)
( o& }6 a2 b6 _3 L7 G4 R  g# ~    ReDim line1(0 To ic): ReDim line2(0 To ic): ReDim line3(0 To ic)$ [4 v; ?  o# g# K$ ^8 V, x
    ReDim arc1(0 To ic): ReDim arc2(0 To ic): ReDim arc3(0 To ic)  c" w! \# S! X& U! {6 k, w$ K3 m
    ReDim arc4(0 To ic)
9 V7 N" ?- U, u7 ]$ S5 r) \/ X    ReDim cir1(0 To ic): ReDim cir2(0 To ic)$ h) `: Y2 m; W1 d1 K3 z
    ReDim blk1(0 To ic): ReDim blk2(0 To ic)4 z. b  ^2 k% ?. u9 j
With ssetObj' w. p7 {% F: Y7 o$ T
    For i = 0 To ic
( I: `5 T8 \% B0 O         EntName(i) = ssetObj.Item(i).ObjectName
" a/ _- |# B+ q' c         Select Case EntName(i)3 t7 m+ d! k) |" t2 R
          Case "AcDbLine"; w$ [: k4 j3 f* z
           line1(i) = .Item(i).StartPoint. T8 R/ u* K" ~. i" v6 m0 z
           line2(i) = .Item(i).EndPoint
% ~  [: @/ C) Q+ B- r           line3(i) = .Item(i).Angle8 |! i7 a" }& D6 B
          Case "AcDbCircle"
% M3 H0 X" A- h" X              cir1(i) = .Item(i).Center! ?) E7 K/ a4 o
              cir2(i) = Int(.Item(i).Radius * 1000) / 1000
) _3 P' X: |: ?: F! S          Case "AcDbArc"
$ Z: G. l1 Q9 H- b. ^4 p) b               arc1(i) = .Item(i).Center
( \" f9 i0 T& b' T% {) X, \               arc2(i) = Int(.Item(i).StartAngle * 1000) / 1000
/ n1 I3 X7 @, N1 O5 O9 \               arc3(i) = Int(.Item(i).EndAngle * 1000) / 1000' X$ H; ]! w. A9 w# W
               arc4(i) = Int(.Item(i).Radius * 1000) / 1000; D$ {# Z$ Q+ F
          Case "AcDbBlockReference"
: r" m9 f& h+ D( ~, _# ?4 W9 R              blk1(i) = .Item(i).InsertionPoint
  f0 g( L$ `  K+ `' Q              blk2(i) = .Item(i).Name' _" \" q! ?5 V8 b7 I7 n
          End Select
# n0 _) G0 B5 ~1 B1 ?         & _. f- `& ^/ Q6 U2 v
    Next i" c8 P7 B+ _+ ]

( ^& g& n# X( r  Q! |  m For i = 0 To ic - 1
. b( L: j; L6 r1 f( u" e9 H    id1 = EntName(i)
- x- ~/ `' r  ~6 l3 x   For j = i + 1 To ic2 {$ C5 k5 m  x# K) w7 c7 R% n
      id2 = EntName(j)- w* K/ ^9 z) V3 t/ X! M+ H% F
     If id1 = id2 Then" q# ?$ `7 x& ]
       Select Case id1
. j5 {; L+ k, q$ p2 ]0 M  ]          Case "AcDbLine"  B4 R+ |' f" s) t0 ?! c
            pt1 = line1(i)6 ?( w) e, K# b4 \
            pt2 = line2(i): [+ [+ S9 p3 M: H
            dege1 = line3(i)
' K4 W0 O& e. l4 L7 Z; X" I            pt10 = line1(j)0 ~' A4 S4 X! e; `1 |2 O! o
            pt20 = line2(j): b8 G1 a2 a+ k# o" r+ b- L2 C
            dege2 = line3(j)
9 A+ L4 n  W; Z! J* J) P            If Abs(pt1(0) - pt10(0)) < 0.01 And Abs(pt1(1) - pt10(1)) < 0.01 And _
( f/ r" S- q: [            Abs(pt2(0) - pt20(0)) < 0.01 And Abs(pt2(1) - pt20(1)) < 0.01 Then
6 m; z! [$ u& x* J. N               .Item(i).Delete4 l  I5 \* t  Z3 D
               Exit For9 z3 ~# [1 ?/ \
            End If+ z( B1 b6 [( w
            If Int(Abs(dege1 - dege2) * 10000 + 0.5) / 10000 = 3.1416 Then
9 \2 {2 F: v; \4 N/ A                If Abs(pt1(0) - pt20(0)) < 0.01 And Abs(pt1(1) - pt20(1)) < 0.01 And _7 V5 H0 h& D% _! e: c' H# C
                Abs(pt2(0) - pt10(0)) < 0.01 And Abs(pt2(1) - pt10(1)) < 0.01 Then
( ^4 n# s' x5 c& X% c  ~# j                   .Item(i).Delete
3 ?! A  d  q6 {, Y                   Exit For
8 Q/ o- K' E0 s7 U4 Y1 R% z0 g/ z% g                End If
1 A/ j6 u1 r4 _% ?            End If
' S* ^2 Y. ]' V$ R  p" c: e          Case "AcDbCircle"" r0 @4 q9 @' L3 |# n0 c$ a
            pt1 = cir1(i)# j2 O& A. k) I
            Yuanr = cir2(i)- D/ f" w1 d/ ~: K0 X+ \2 {. G
            pt2 = cir1(j)8 c* v) {1 U9 Q2 o
            yuanr2 = cir2(j)5 |' X) V' N* Z
            If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 0.01 And Yuanr = yuanr2 Then( H; A6 G6 C) q7 W
               .Item(i).Delete/ L8 {. S8 ~6 h4 e
               Exit For' _" W9 R: m; S2 F
             Else
+ E, d+ X6 A7 o& g7 G               If Sqr((pt1(0) - pt2(0)) ^ 2 + (pt1(1) - pt2(1)) ^ 2) < 8 Then
& M6 ~- z- k5 ^- L, Y( D! _                  .Item(i).color = acGreen
6 b3 m! c9 F1 f% O1 Z               End If9 B; r# O& c' @$ w8 t# M7 l, p8 D$ X8 _
            End If
) \" {: S6 |. t1 d          Case "AcDbArc"8 O* g" z0 L9 m0 W7 L" Z
            pt1 = arc1(i)
* @/ l* d! r. D: N$ J0 f& K2 L3 n            dege1 = arc2(i)0 c2 ]% d( V. H) h8 L& B
            dege2 = arc3(i)5 a# g& c6 t- U+ |( G
            Yuanr = arc4(i)( p6 P: V, F. a# o4 R
            pt2 = arc1(j)7 z" i8 f0 k+ S* p+ j8 q
            dege3 = arc2(j)
8 F' p% n5 d+ Y& i2 t; D& g6 A            dege4 = arc3(j); z' S% P% Y; q- m* ~
            yuanr2 = arc4(j)  l7 k3 {9 h) `& j  B# n
            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And Yuanr = yuanr2 _
7 Z3 R# z; L+ u* w            And dege1 = dege3 And dege2 = dege4 Then
! J$ n) P" W) G2 P               .Item(i).Delete1 Z0 K+ s* {5 `! z) K! V& v8 l, E
               Exit For& q2 }8 @9 F8 S; x2 }
            End If
! s# c* [5 I6 E2 ]5 j  n, r4 g         Case "AcDbBlockReference"
& g; a. X8 q3 k            pt1 = blk1(i)+ G# g6 E5 U; w) R9 G! H+ f
            str1 = blk2(i): K* H, _( h# O5 K
            pt2 = blk1(j)
! O1 c, P* w! H5 @& v            str2 = blk2(j)1 S# o4 E4 F% E0 V2 i* U
            If Abs(pt1(0) - pt2(0)) < 0.01 And Abs(pt1(1) - pt2(1)) < 0.01 And _1 z' J) P- h% e
            Trim(str1) = Trim(str2) Then6 k) d) s/ b, t
               .Item(i).Delete' K- v% Z4 {; j- L
               Exit For
+ z: s) O! U, l$ I" O, j            End If3 ^% g8 D  i6 l" f, k! O" [8 L
        End Select
( R9 I" \3 ^: F3 x      End If
. r( Z+ [6 T# `    Next j
* @% X6 {$ _. f2 [: O0 S8 D+ I  Next i! ]' Q/ w8 i1 l- u8 Q0 o" R" j
  End With
, |3 \) z3 m4 H( e5 a2 M'  MsgBox "删除重复完成!"0 R/ T+ _4 [& K/ H  H7 M; S
   GoTo ccc2
# m2 D' G$ ]. Y! j4 `! l, fccc1:  MsgBox "有错!!!": N4 J6 Z- p' ^% C+ E2 [
ccc2:     'ssetObj.Delete4 \9 S+ f  r4 ?3 q

  g4 t/ |& b% Q7 b) }7 y9 L  S End Sub# z% P5 V  P/ H$ a7 h- b- Q: E
( @' }7 i% H. x6 J' j4 n
Public Function Clamp100(a1 As Double) As Double   '判断块存在不存在,存在=100,不存在=0
, ?+ u. l6 ?8 X! f0 [8 G    Dim p1(0 To 2) As Double '交叉选择的左下角点
/ i$ {. e3 H  R# Z    Dim p2(0 To 2) As Double '交叉选择的右上角点$ U; P" U8 I1 o- ^* R4 O( E
    Dim ssetObj As AcadSelectionSet
' n' q$ Y. B1 Z6 Q, ?    Dim ic As Integer, j As Integer4 W4 U7 L# l  K8 @! b: S
        ThisDrawing.SelectionSets("SSSS").Delete9 s3 `/ n( F/ K* _. ]
        Set ssetObj = ThisDrawing.SelectionSets.Add("SSSS")
& {0 L4 k6 i: M3 u% F        p1(0) = a1 - 15: p1(1) = -25: p1(2) = 0# {0 X! Z7 T8 `, \
        p2(0) = a1 + 15: p2(1) = -5: p2(2) = 09 V& B+ {% O4 C% O, C9 `- T
        ssetObj.Select acSelectionSetWindow, p1, p2
# a) D; n/ P# J' I4 u        For j = 0 To ssetObj.Count - 1! a( U% }& d2 b
         ssetObj.Item(j).color = acGreen6 Q) ]6 \, O* S0 G* g
          ssetObj.Item(j).Update% R3 U. }+ I+ }0 a* O
        Next j, |5 r6 b* P1 i
        Clamp100 = ssetObj.Count* b2 a( a' s; B, M
End Function
, R! G: R9 [) D  Z. s/ K1 Z7 i0 h( ?  d) T" P% H

% z- x/ \0 m# C) z
2 n4 R7 @  {( Q  B! Q' X4 m  J# B, m* k* q2 |6 j& O1 ~
看不太懂 不过   我在这里多学学  应该没问题的  嘿嘿
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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