找回密码
 立即注册
搜索
查看: 7029|回复: 29

今天和朋友学了会儿Excel,折腾到2点半..

[复制链接]
发表于 2014-6-20 02:58 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-6-20 16:05 编辑
/ w' U# ~& j9 ?$ h( Z
4 |: }8 d: n# ~3 ~+ J不怎么用Office系列,今天偶然和朋友聊起来,突发奇想用Excel做了个扫雷的修改器....[em1127]( R) A7 p7 b* m7 g( {
虽然不会Excel,不过VB咱小时候还是学过的...[em1124]
' w) ]9 e; A( y0 E8 c. U9 G, ^- N4 e5 f
我用的Win7的扫雷,其他版本的估计不行..可以停止计时和在表格中现实地雷位置...' J2 q; g+ e1 E
附件就是那个表格...如果版本不对就直接看代码部分自己复制过去也行..
9 R4 a0 g) o, i. z' w顺便说,VBA简直反人类..MS为什么不出VBA.NET啊...大段的代码要自己写,而且抽象性巨差..... t* w' H/ @; j) h7 O
; g2 t1 z  q- z
MineSweeperTrainer.rar (22.27 KB, 下载次数: 6)
1 D7 r" l* @+ Y/ M
5 {! G/ x3 E/ H0 _1 c1 {8 L 1.jpg
. j4 ]( o4 U& O5 C% u* f3 R6 m) x, v; l  S7 R

9 t6 u! L/ t( a) K; M
  1. 【控件】
    " _. H3 L% z0 J8 B

  2. + s' m9 a( v' C
  3. 窗体:frmMain
    + I1 i! _5 C, a8 S2 G* r
  4. 按钮:btnCatchGame,btnRefresh5 V1 N% x. [& |: i3 ~
  5. 选择框:chkGameTime
复制代码

% X1 \6 o- V: E+ s) D3 f
  \4 I" }0 |/ v3 x3 M1 {8 B, @* d4 `- y) x8 a) W- n' p% o  Y+ u

. R8 y  J7 l/ z9 s6 Z% u
  1. 【代码】
    % E  M, u# I; q/ P8 J$ A$ t
  2. + f2 T" C( _( O

  3. 7 `/ p' O) ]7 ]1 q9 X0 d% [
  4. Option Explicit: N. f2 }* i# I0 S8 a

  5. ; W! I6 {# b+ U

  6. + A- @& u3 _: |
  7. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long' c& P3 X  Z+ f. n7 b7 d, Z
  8. Private Declare Function module32First Lib "kernel32" Alias "Module32First" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long
    9 H. k4 u4 R  h) \
  9. Private Declare Function module32Next Lib "kernel32" Alias "Module32Next" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long1 ]: R8 X) Q7 \& [( e
  10. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    6 {8 J9 b5 p# x! s3 w4 a, v
  11. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long+ X: o8 m* t- b$ U4 p
  12. Private Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
    & n* z( {$ Z* Q- q+ |/ q/ ]
  13. , D5 ^( l, F$ k) k+ e6 G/ \( {( L3 G
  14. # `+ ~1 L: Z, ~& k# G
  15. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long, f& f- D  @$ @  \, M  L/ J) Q
  16. Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long6 u  B7 C( X8 D
  17. Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long5 M0 X2 f8 Z+ w% L1 ~, U
  18. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long3 d: ]6 B' w5 @

  19. + S* U, e. K5 I' R

  20. . X! u& i& D& L1 Y( B3 C& \
  21. Private Const TH32CS_SNAPPROCESS = &H2
    # p) v1 C3 E0 H4 z" E. B
  22. Private Const TH32CS_SNAPmodule = &H8
    ; k& y! n8 n) T- V0 c7 z. }# D( g1 L9 f/ |
  23. Private Const CB_SHOWDROPDOWN = &H1570 c6 Z# v# j5 t; T
  24. Private Type moduleENTRY329 r0 ~2 g+ e+ w$ D3 l. l# W
  25.     dwSize As Long
    9 X3 t' f/ u& Z8 X; ~1 p
  26.     th32ModuleID As Long9 u$ n' T3 I) N/ a7 ?
  27.     th32ProcessID As Long
    0 D/ q8 p: t9 h8 ]4 c4 Z. N
  28.     GlblcntUsage As Long
    : H2 d' v) A/ n% z! x) V
  29.     ProccntUsage As Long
    : f5 `6 O5 _& E. J0 M8 C
  30.     modBaseAddr As Long* F2 X+ |6 D  J5 n
  31.     modBaseSize As Long: M- @" Z) g5 h' N7 ~
  32.     hModule As Long! e2 k* K- ?' B
  33.     szModule As String * 256
    " ^6 |& }- ^/ X) V( ?$ W" [
  34.     szExePath As String * 10242 `& H" l7 s/ y) H  s* |+ a7 B
  35. End Type
    % K3 I8 X( y  H& Z; L* P$ `. u

  36. 7 i; n; c! u3 ?4 K0 x6 ^& R+ d% X) V0 \
  37. Private Type PROCESSENTRY32
      J8 N5 Y/ k2 r# _
  38.     dwSize As Long  C, ]7 g6 p7 s) d
  39.     cntUsage As Long
    ) u2 X# N4 W# \2 Y
  40.     th32ProcessID As Long
    ( Y  Q# h* g: E- A( ~, b
  41.     th32DefaultHeapID As Long. C  [# ?9 n/ H; [2 v+ r( R6 R
  42.     th32ModuleID As Long
    ' H; y; L2 p! R1 I! q/ i" m8 b3 B
  43.     cntThreads As Long
    5 c6 U; k# Q. R9 P! p
  44.     th32ParentProcessID As Long
    : R, D9 i9 d) n$ K5 ~- R8 ^6 l
  45.     pcPriClassBase As Long
    ' f% o; B" Y; Y0 v/ i
  46.     dwFlags As Long
    % h0 M8 L  l- j" U
  47.     szExeFile As String * 1024' Y0 t, ?2 Y0 U6 Q+ o- }4 T5 G" q
  48. End Type
    2 U# d! O3 N' ~  l8 X
  49. / X7 G( T$ U3 r7 l% n1 x3 d3 q/ E

  50. 0 j0 F& |& N' Z( t9 R; F+ h! Q

  51. 6 \/ Y( t6 n( g* \- Q; o. v
  52. Private Const PROCESS_ALL_ACCESS = &H1F0FFF
    5 Y; _# K' Z1 Z- d4 K0 T4 K
  53. Private hProcess As Long0 o  m7 J7 P8 @
  54. Private PID As Long. @/ M" B. w8 L! H" p- y: V: B* H
  55. 9 V5 _% S, g- ^% A9 _
  56. , m" u. ]/ Y: v/ j3 |& u
  57. Private Type asmNum9 b' ^- P) V% s0 _
  58.     nuM1 As Byte
    ; z& o) F* f0 Z5 j5 h; q+ A
  59.     nuM2 As Byte
    ) F4 ^) ], t' W, h6 Y
  60.     nuM3 As Byte
    5 L: T2 y9 k3 g0 x5 l# E# e  l
  61. End Type1 P& P' R5 \2 u/ ]  D& @! v+ g* p
  62. " ^$ k7 J1 s3 t$ a$ G8 `$ b6 X
  63. Private adrTime As Long6 B: s$ [2 E- ~: D+ D) G0 g8 o) N: N
  64. Private adrMine As Long% t5 t+ q3 v6 {) F. w

  65. 6 B) `  {" r! K2 ~/ h, w
  66. Private Function GetProcIdByName(ByVal ProcName As String) As Long( t3 o/ |( `8 g- L3 C
  67.     Dim PE32 As PROCESSENTRY325 \% W- R* A4 y, |# Z
  68.     Dim Procid As Long. f' u* ?4 t/ p( i+ G' X  s7 B
  69.     Dim hSnapShot As Long
    ' x7 L( l0 {# j
  70.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPPROCESS, ByVal 0)
    4 B+ c9 {7 U1 ]& b! W6 Z! v% x
  71.     PE32.dwSize = LenB(PE32)1 b1 A% E! Y) q0 s6 h1 T6 w
  72.     Process32First hSnapShot, PE325 I* Q+ i% d; m, x9 z0 C9 y- R
  73.     Do
    & J6 x/ R$ i9 w
  74.         If lstrcmpi(Trim$(ProcName), Trim$(PE32.szExeFile)) = 0 Then. H8 n/ u/ r. |: l- b1 U! M
  75.             Procid = PE32.th32ProcessID: c) M! N4 e2 ]/ \
  76.             Exit Do
    . {2 q' C6 _. s1 I# Q( o- E6 V3 y- s
  77.         End If8 S, |" ]4 O8 U1 l
  78.         PE32.szExeFile = vbNullString
    8 ]7 {$ P( d/ [# `1 {. ?- d$ g) n
  79.     Loop Until Process32Next(hSnapShot, PE32) = 0
    ( ~% H4 s/ p  ^
  80.     CloseHandle hSnapShot
    % Y8 ?6 ?; T6 D
  81.         GetProcIdByName = Procid
    / R- W+ B! v3 h+ e9 e
  82. End Function/ v$ r" W% I$ V( Z; {
  83. ) ?2 b- ~" z& ^5 n* S" H: i
  84. 7 a  O' C, L1 G& S3 O) z+ F8 S  t
  85. ) W# ^, R& t- C; ^% |& N
  86. Private Function GetModuleBaseByProcName(ByVal ModuleName As String) As Long
    - l8 M4 [, Q! p9 z: w
  87. 0 }1 v0 W# n2 A8 B5 V! P- G4 y" p
  88.     Dim ME32 As moduleENTRY32, ModuleBase As Long0 G- \; |1 A8 W& m
  89.     Dim hSnapShot As Long; q* |' ]* h9 F: ~( Y' z) J' I( L  @
  90.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPmodule, ByVal PID)
    " f5 B- \8 X% I
  91.     ME32.dwSize = LenB(ME32)
    0 e+ P) F9 Q0 h! p& W3 J( u3 f& C3 e$ V
  92.     module32First hSnapShot, ME320 b+ w: _4 ^/ z0 b% N/ g
  93.     + a8 j8 [% T5 V
  94.     Do; v% c9 Z- l' R" A! a0 Y$ M
  95.    
    , I2 Y, e8 U1 }- O4 h- L* ?' n5 H: w
  96.         If lstrcmpi(Trim$(ModuleName), Trim$(ME32.szModule)) = 0 Then1 }% R3 h+ |: {' ?! \( m
  97.             ModuleBase = ME32.modBaseAddr+ ~: T/ R" G. _2 x. P- {: _$ r
  98.             Exit Do) _0 J% @+ Z  ?
  99.         End If
    8 b3 |; A' f+ u2 L) f7 f& ~/ e
  100.         ' G5 B) o" l' ^1 U  ^+ k
  101.         ME32.szModule = vbNullString  D/ @2 d2 |" S. H- r
  102.    
    3 q) P) A+ U" Q" j
  103.     Loop Until module32Next(hSnapShot, ME32) = 0' ]1 P' u5 W( E; I
  104.     CloseHandle hSnapShot
    $ R/ D2 l7 k: L! I% Q6 K4 ~
  105.     GetModuleBaseByProcName = ModuleBase3 D( C* }/ a. J" ^

  106. ( I: t6 J  t' d( K1 _0 A
  107. End Function5 H. X/ t2 Q  s$ E. N
  108. & B+ Z, X8 l; D0 Y* h/ c/ f
  109. / l7 p! z! f! p9 y+ [3 S# b
  110. Private Function GetMemory(ByVal Adderss As Long, Optional Length As Byte = 4) As Long0 R3 J# g! L2 S" `! F) e: A
  111. ReadProcessMemory hProcess, Adderss, GetMemory, Length, 0
    : Z4 Y5 U! _7 L; F
  112. End Function  M6 `# D" [9 T; _$ u) \1 f! [4 A& B! {
  113. Private Sub SetMemoryAsm(ByVal Adderss As Long, NumVal As asmNum)
    % p  C  v: J5 D
  114. WriteProcessMemory hProcess, Adderss, NumVal, 3, 0
    5 @; ~5 H  a# i' m- r
  115. End Sub
    ; W9 a) I- ^5 `( l, O# @- i* |
  116. 9 J3 C% z0 x: l4 y
  117. ; C3 I  ~2 [! j/ P( U2 H! o
  118. Private Function FindGame() As Boolean% M/ i5 g) b7 P$ g
  119.    
    / F* K; `# b7 V' _4 @7 Y
  120.     PID = GetProcIdByName("MineSweeper.exe")2 n. T" H9 |/ z
  121.    
    ' @" s. N! I: g: y
  122.     Select Case PID  k. w/ S% [; O. V; `
  123.         Case 0
    % o7 X4 @/ L" ^- }  S1 _
  124.             FindGame = False
    0 u, y( S3 I9 c3 e
  125.         Case Else: q1 _7 I; S: V' Y/ w3 {
  126.             Dim adrBase As Long4 ?: G& j3 j2 i+ P7 v  x
  127.             adrBase = GetModuleBaseByProcName("MineSweeper.exe")( @. i! i" ^. q! _9 y! `: H( y
  128.             adrTime = adrBase + &H21446
    4 f8 h& C! t' s5 e1 |
  129.             adrMine = adrBase + &H868B4
    . G, E. X4 c! [! K+ D" g9 X9 h2 a" Z4 G
  130.             FindGame = True4 z' ^: k* ~: S
  131.     End Select
    0 k. M9 Q3 v9 \% l9 {
  132. End Function
    . U: y; G0 ?  N. F# A. ~- E

  133. ' W. n" U9 E: S: k
  134. Private Sub TrainerState(ByVal State As Boolean)
    7 i6 Z) p  z, z" h- H
  135.     chkGameTime.Enabled = State. a2 f, z! s* a8 ~* B6 ~
  136.     btnRefresh.Enabled = State
    ( E- P, ~( ~9 R- W: i! r( Y, ?
  137.     Select Case State( t- t5 K! i1 `8 n  R# u- S
  138.         Case True
    5 B1 U# S; s% v( D3 I# N5 w6 s
  139.             btnCatchGame.Caption = "ReleaseGame"
    1 E6 N  {3 W* Q' D, y9 r- x* H
  140.         Case False
    ( i0 q5 a  C' r7 e- U: i, j+ U' K
  141.             btnCatchGame.Caption = "CatchGame"9 A# P2 A' a% {' o
  142.             chkGameTime.Value = False
    * \' ^# Y" I; k* c! e
  143.     End Select8 d1 `# P/ J+ k8 p
  144. End Sub
    " E* S% W( x7 B5 L' w- K

  145. 7 Y( g7 Z: z, G& f/ R

  146. 7 B! i% r* A3 ^- y5 m4 K
  147. Private Sub AsmState(ByVal State As Boolean)9 r: \) u& R& W) i
  148.     Dim asm As asmNum# u$ q/ Z- g$ F" k% o( u& ?1 R) [% C
  149.     Select Case State& G% `9 s( s/ @, W( Q; U& z+ n
  150.         Case True! d; M/ B6 V" `* P+ @
  151.             asm.nuM1 = &H901 v7 ?+ s1 m7 ^$ j
  152.             asm.nuM2 = &H901 g# ]# R! q2 w* N
  153.             asm.nuM3 = &H90
    " J( w8 l3 W$ W* p& B
  154.         Case False; y( l# X/ k2 J' d5 G, x
  155.             asm.nuM1 = &HD9
    ! Y' e4 ^3 I* ~& w3 ^
  156.             asm.nuM2 = &H58
    / _5 R4 w2 @  r
  157.             asm.nuM3 = &H1C
    6 s6 Q2 r5 a" {; N3 C+ h
  158.     End Select
    ( D& H; v' i- B6 _0 m
  159.     Call SetMemoryAsm(adrTime, asm)5 R* S' u2 A6 n0 \! S7 |: _
  160. End Sub: d: z. R( T: L; C, K9 ^: V; p
  161. 0 a0 I& B2 M/ i! F. S9 I" Y3 u' n
  162. , T6 ~4 d' N5 k" L4 h
  163. Private Sub chkGameTime_Click()
    % u' Z" j$ n# M4 n! f
  164.    AsmState (chkGameTime.Value)
    ! k( ~$ X. k$ C0 y9 \
  165. End Sub
    9 A* l  r/ ^6 ?9 L

  166. - ^6 M( l1 ~5 I4 k: i/ Q

  167. ' p0 o( f" e! p9 |# r; t% y- Z
  168. Private Sub isOpen(ByVal State As Boolean)
    $ I' y, ^4 b" B+ C3 i2 J! h
  169.         Select Case State) H; l& |, [. V7 A& ~& r
  170.         Case True/ b/ \/ W8 y8 Y% y- |
  171.             If FindGame = True Then
    9 a1 w6 Z! x8 o2 l  w
  172.                 hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, PID)
    # e3 }' j+ M% w+ A8 _8 Z
  173.                 TrainerState (True)
    6 m6 k1 S, r8 t! a
  174.             End If  c; l6 W. {1 }% V2 t1 v' W
  175.         Case False8 _. r# U9 i0 \" D2 P
  176.             If FindGame = True Then
    8 M5 e9 g- M+ U" V" s7 r/ C; k
  177.                AsmState (False)+ k# b  a8 R6 X; p# J
  178.                CloseHandle hProcess
    1 B. @1 s4 ?- J! x
  179.             End If
    7 M, }& \7 {9 ~. S. V, c
  180.     End Select; S* s2 s6 L2 v* x9 x" l
  181. End Sub
    ' a; r( U5 V5 P* d5 W6 _; n+ a

  182. 2 g$ k& g( d0 L
  183. 7 M/ O4 r$ Z( x( i# {& k( u
  184. Private Sub btnCatchGame_Click()
    9 Y4 l3 A; e: ~8 _
  185.     Select Case btnCatchGame.Caption; r* f" d$ d( O
  186.         Case "CatchGame"$ r. u8 Z0 W" O' i2 r
  187.             isOpen (True)
    & x+ J4 a' @; a3 d3 k" _4 v) X
  188.         Case "ReleaseGame"
    1 Y0 N0 C% I  c9 a2 ]
  189.             isOpen (False)
    # |* l) |2 d2 [8 ^
  190.             TrainerState (False)1 g. f* u3 M. z  H4 S$ @- M( d
  191.     End Select( o0 P+ W# a' J/ }* F2 U
  192. End Sub
    / L. [# X; k% f- F& x. U4 P- b( c
  193. % B. T4 q' L% B5 Z
  194. Private Sub btnRefresh_Click()! H$ V( x: c0 w' h* \

  195. 4 b, b" G; U/ u- P8 |$ N/ p7 {+ I. e4 s
  196.     Dim mineColumn As Byte, mineLine As Byte
    1 q  P) V6 u. T1 W1 G* L+ L$ e
  197.     Dim adrPoint As Long, adrTemp As Long, adrColumn As Long: X& X, D7 O/ g5 `
  198.     Dim i As Byte, j As Byte3 u) ]0 j- _& v, G8 S+ h

  199. 1 T& n2 ?5 P# D( U& M4 c
  200.     0 `& }6 n! p" `0 T" S
  201.     , |+ i% |/ w/ h0 ?) V: w% y
  202.     btnRefresh.Enabled = False
    , U) q  ]+ L  j3 U
  203.     5 C( F7 Y( p: n
  204.     adrTemp = GetMemory(adrMine)
    0 C$ G" f' z% w" G3 G: `' x5 H
  205.     adrPoint = GetMemory(adrTemp + &H10)
    $ m0 k/ q: q. @6 s
  206.     $ |# q# j0 [- i0 y% C
  207.     mineLine = GetMemory(adrPoint + &H8) - 1; X; M% @8 m- ?! }7 y. J
  208.     mineColumn = GetMemory(adrPoint + &HC) - 1- _: t; d3 W9 G2 M8 H
  209.    
    ! s! d  c+ ~3 h' {
  210.     adrPoint = GetMemory(adrPoint + &H44)2 i$ l6 q- f4 C6 t: u: g
  211.     adrPoint = GetMemory(adrPoint + &HC)
    ( _- K" y( Q) X6 A) k0 n, {/ T: m
  212.    
    ! T. V+ l. t2 c: o- ~
  213.    
    ) q- A2 O2 L8 Z' g; J6 O) c4 l- h2 v
  214.     0 j" v# E' c/ z2 N" i+ g3 j
  215.     For i = 0 To 30
    : v2 n7 V4 c- e+ E' F2 A- }' Q
  216.         adrColumn = GetMemory(adrPoint + i * 4)& b; U; f' D, X8 \9 e& D
  217.         adrColumn = GetMemory(adrColumn + &HC)" @: ?5 S1 M) V# C& M! k
  218.         For j = 0 To 23
    ' D  Z( U3 [7 I5 W' I4 H4 i) D' U) L
  219.             If i > mineColumn Or j > mineLine Then
    / C' j. F7 O9 W$ z* z) x8 h( m
  220.                 Sheet1.Cells(j + 1, i + 1) = ""9 a: W1 f" P1 {/ W; m
  221.             Else5 l$ r/ T! `' p) O5 c/ m
  222.                 Sheet1.Cells(j + 1, i + 1) = GetMemory(adrColumn + j, 1)
    - c3 L! z0 E' v8 F8 P1 I
  223.             End If% g$ G9 t! i6 ?# S3 J) N) `
  224.         Next j$ N3 v" K3 V1 I: H$ q
  225.     Next i
    ) {0 k* \8 Y3 a& k/ Y+ T, d. @
  226.     btnRefresh.Enabled = True- h- x. \& C- X+ f$ O
  227.     - n. t3 x  M) L( Z
  228.     : z4 X0 h& @2 g, U6 j6 ^
  229. End Sub; w% D! h9 r7 V+ A5 Q# W+ x2 Z

  230. 5 C# |: q3 X9 R1 v4 o
  231. Private Sub UserForm_Initialize()  c! H; Q! A: H9 M& ?
  232.     TrainerState (False)
    6 v$ L0 K/ f1 {, T
  233.     Sheet1.Cells(1, 2) = 1
    % V9 H+ U' t8 n& y1 H
  234. End Sub2 }& ~7 a+ u4 g0 \* k+ K

  235. % Z" D- o8 Q# |% D/ S, b; t$ D# B. X, N4 w
  236. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    - }5 o6 C* N7 r
  237.     isOpen (False)# G6 N" s% ~. B& X
  238. End Sub
      Q7 G' T8 r! O& a9 m- D- x. k
复制代码
/ B4 n* R6 o& @, o/ E2 j0 a& R& _

" x- a; w2 v0 `& B' V" v. j0 x0 u; ]4 I: V8 x/ S5 S$ K

! m' k# Z; \: U& [  |5 k6 o
发表于 2014-6-21 18:42 | 显示全部楼层
EXCEL2010盡頭.jpg ! d$ x0 ^: ?. }6 {; g
事實證明Excel是有盡頭的﹗(謎:你是閒到甚麼程度?﹗)
3 O! \: ~. ~8 p
发表于 2014-6-20 12:29 | 显示全部楼层
excel在我們這裡是必學的…
发表于 2014-6-20 12:45 | 显示全部楼层
厉害还有源码,学习
* f; I4 t8 O: P( z) mexcel我只拿来做最简单的表格。。
发表于 2014-6-20 18:24 | 显示全部楼层
完全看不懂!!!!。。。
5 W1 m: @5 v' O9 G, d  W( l; s: A
不明觉厉只能跪
发表于 2014-6-20 18:49 | 显示全部楼层
尗又 发表于 2014-6-20 18:24+ E& _; d+ b. Q
完全看不懂!!!!。。。, C- S- f6 c; }5 P

1 F$ \# H, I1 Q- i+ y0 O$ c3 s  t7 @不明觉厉只能跪
. V' u5 e6 \0 l. y9 y. k/ _
這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…
5 Z( G: K* T) f* V
发表于 2014-6-20 19:00 | 显示全部楼层
NataieChan 发表于 2014-6-20 18:49
4 R3 d, |. }4 c) C" {7 D; U3 j這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…

" v3 g% k1 ?, S# G, a4 q' `哈哈那是,因为我对修改器的东西比较感兴趣啊" S! z! `' i" `3 K7 ^7 h0 r$ t
发表于 2014-6-20 20:32 | 显示全部楼层
止慈 发表于 2014-6-20 19:00& n4 E& K% s2 \% z! @
哈哈那是,因为我对修改器的东西比较感兴趣啊
( a( Q$ n6 W4 M; O/ Q
莫非你勤制修改器的目的是因為懶得自己去玩…
- w8 `3 f. r; v8 _3 P
发表于 2014-6-20 20:57 | 显示全部楼层
NataieChan 发表于 2014-6-20 20:327 Q  @2 ]) ~% [5 Z) T' ?& ]
莫非你勤制修改器的目的是因為懶得自己去玩…

9 ]$ r2 o- o' z+ T3 K+ Y不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、跑进场景、走一段路、去点制作人、看目前有什么通告——这里还只是看到目前有什么通告,还不一定想接,也不一定能接,或者现在就能接。玩得烦了就自己琢磨减少一下流程,毕竟游戏是要有乐趣,但鼠标点多了也太繁琐。
! y8 [# x: n" s9 Q' Z% ^2 Z! v而且我玩游戏是修改派,不修改无乐趣。。
' ~0 k* i- D; @
: q7 ^9 [1 V2 O2 J有点跑题了。。再回到excel上,小N你们学校里都学用excel做什么?我会的只有最基本的表格和加加减减求和比较之类的。。
) T; g) P. _4 C" a) n0 v% y2 x3 t( V
再想起来,我因为需要,想过用excel设计一个东西,大概也是存一定数据然后按自己需求可以随机提取之类的,搜到一篇文章还提供了源码的,结果源码链接无效了。。2 m( G3 |) u2 I" \. O' o

' G  x! q  b% \: K8 C8 G8 p
- o5 H0 M9 D( a3 e
1 g$ d8 T( V# U止慈 于 2014-6-20 21:12:09 补充以下内容
- m7 [  o$ f  n: ^+ w$ J# B* a: A9 s, Y
求指教。。打开附件excel,启用宏以后,那个窗体怎么出现。。我编辑宏能看到源代码,excel不会那么多不知道怎么让那个窗体出现。。* h$ G% ^% l2 ~6 O( Q

  [8 ^3 p9 p& d# c+ @/ ^9 `在我这里
4 f, D# J3 G; E* a; @
  1. mineLine = GetMemory(adrPoint + &H8) - 1
复制代码

0 N' v4 D# ^* y7 G$ @会溢出/ v3 ~, q7 C) t% A, R
$ I+ N: u; L  y% W/ M$ t% z
不过没关系,只是做着玩玩的,不用修~我是试着运行了一下然后出了这个错误,就顺便说一下. d: {3 N+ g& S: x" i3 E! B

! Y: A/ @: x  z" H2 E+ D( ^- S$ A2 i: Z! Z3 L7 O0 E
发表于 2014-6-20 21:15 | 显示全部楼层
止慈 发表于 2014-6-20 20:57
$ G% c5 B6 P3 F- r不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、 ...

( z! G/ S6 c; \5 G9 ]- c9 G做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…
' B4 ^# \& f. p  O* U. p# v
7 m& s, y9 e, y
% }; m) j( z. O1 Y4 |NataieChan 于 2014-6-20 21:19:08 补充以下内容
- R4 f# B+ S! u5 \$ e& G4 l% _. V2 A& x& b& E# @) k; f
做各種的圖…
发表于 2014-6-20 21:23 | 显示全部楼层
NataieChan 发表于 2014-6-20 21:15
: o6 R0 f+ i# `6 F4 P0 i* y/ t做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…

  f9 {5 W$ [: G5 i; z[strike]做什么奇怪的东西说出来让我们乐一乐[/strike]
. b* q5 p) O4 p. W0 h! W6 v
- v$ V8 Z; R$ l& @/ w9 W2 U排名还好啊,不过也许你们的是比较复杂的排名,那就麻烦点吧。。
2 `  D: H1 B$ q4 T5 J( N4 {- u; D6 {* o$ Q& \$ C
以下是编辑:
3 }9 ?' _- |3 a7 u7 t- D% l" W1 q# {; g  f. \# h$ C; f  D% t+ F* [: P
刚刚没看到你补充的。做各种的图的话确实比较麻烦。。
) v2 B( u) S0 X" }0 B
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|明志略 |明志略已经运行了20年7个月0天

GMT+8, 2024-9-27 23:37

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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