用户名  找回密码
 立即注册
帖子
查看: 7751|回复: 29

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

[复制链接]
发表于 2014-6-20 02:58 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-6-20 16:05 编辑 4 U" A- O$ Y9 F/ Y, I
, l: M9 s% R2 Q4 A4 V4 I
不怎么用Office系列,今天偶然和朋友聊起来,突发奇想用Excel做了个扫雷的修改器....[em1127]
6 k6 q" q# [* a) j" Q, `$ [虽然不会Excel,不过VB咱小时候还是学过的...[em1124]
: Z; X0 Q& {0 T! K  _% l+ V* C6 h. ~" L! [7 Q  |
我用的Win7的扫雷,其他版本的估计不行..可以停止计时和在表格中现实地雷位置...3 b" ~& O2 o7 ?. R1 s" i
附件就是那个表格...如果版本不对就直接看代码部分自己复制过去也行..
$ s8 Q1 ?! F* q% V7 p  g; a顺便说,VBA简直反人类..MS为什么不出VBA.NET啊...大段的代码要自己写,而且抽象性巨差....
1 w7 @, C6 k( L  Q. ~# q6 P6 i9 m2 S6 m% V$ \* b7 i" x$ w& `
MineSweeperTrainer.rar (22.27 KB, 下载次数: 6) 4 k3 a" I* E' N
; F" e0 r# k5 J# F
1.jpg 3 c+ |% d7 T( @  |( g- o" [

2 r* ?8 U0 \, {* N) Z7 f6 W3 y6 v
( ~/ @; m4 V/ S2 n; N% L) l, N: X6 r
  1. 【控件】# c1 K& l  ]9 f2 Y9 p: n
  2. , e- @" A; I) _' B( b6 P8 s
  3. 窗体:frmMain3 R/ l$ f" u0 R5 H, U$ Z) I! ?
  4. 按钮:btnCatchGame,btnRefresh4 C- N5 F% t4 F* W8 k/ L
  5. 选择框:chkGameTime
复制代码
2 P1 I0 L9 [8 W+ N

1 b1 F5 B3 Z2 ^) {& ?' L' r1 v0 L  e1 L* z; x4 C$ m, @; t
' r+ a2 M; `0 ?
  1. 【代码】) z; d. p, D( C" A0 f5 x

  2. # C' Z8 a: D: r+ `% K- o5 A

  3. + i: y. p2 R4 u4 \+ U
  4. Option Explicit7 X+ V- L( _0 ^- n. f
  5. 8 Z. t/ L( m6 ?

  6. 4 ~; q6 D3 i4 k* |' |, M5 D$ [
  7. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
    2 _/ e, f5 v$ x! }3 {% G
  8. Private Declare Function module32First Lib "kernel32" Alias "Module32First" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long1 S5 ?& I; Q" I6 M. T
  9. Private Declare Function module32Next Lib "kernel32" Alias "Module32Next" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long
    ) t# \- s$ S! ?6 N3 {/ O" ?( A
  10. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long" m9 X4 m; C% O& _
  11. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long; n$ p$ P, r) u6 `2 `
  12. Private Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long: o6 T. a. ?, N

  13. , z& }; [4 D# Q$ W9 R! `

  14. 3 O1 {+ d. @4 b) D
  15. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long' D- z- p7 t5 Q- e/ {9 T
  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 Long* c1 p3 F/ t/ s* r
  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 Long
    # X! Q  N$ e& M' A' D6 O2 Y
  18. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long% l5 u  }5 p, y* q, w9 ^& ]

  19. 8 \8 h8 i! v6 O$ F- `6 C2 G8 l

  20. 4 Y2 p: ]" o3 n8 R# o9 y
  21. Private Const TH32CS_SNAPPROCESS = &H24 S  {4 W; \& {/ h2 M
  22. Private Const TH32CS_SNAPmodule = &H8
    . w5 N1 t& J5 p7 ]) t, o& Y$ W, L
  23. Private Const CB_SHOWDROPDOWN = &H157
    + g2 @% o! w  P$ ~( n4 X' Q+ n  X
  24. Private Type moduleENTRY32
    4 [( B8 s0 h6 b
  25.     dwSize As Long$ z2 Y/ I1 ?9 \' T4 i5 K$ K* ^8 b
  26.     th32ModuleID As Long, W' C; ]; o1 Y0 v
  27.     th32ProcessID As Long/ d3 h7 W5 X3 S
  28.     GlblcntUsage As Long
    + _% A3 j1 d; w% y! H, p
  29.     ProccntUsage As Long
    $ D9 _0 w6 e% w$ @; }% ]; Z+ m* {
  30.     modBaseAddr As Long# }+ P6 T: ^' z( e  T/ K
  31.     modBaseSize As Long+ L$ g, B; F4 ~3 c
  32.     hModule As Long
    ) h+ T8 \9 \2 f- A2 _% E: X
  33.     szModule As String * 256- Y' G( o9 t* g: I1 ]4 o% t
  34.     szExePath As String * 1024# n0 }+ ?& V+ ^5 Z7 D
  35. End Type
    # w. c7 o" ^3 P( B/ j

  36. # n! J2 y1 ~: f/ S6 S
  37. Private Type PROCESSENTRY32" Q, h" p' x* W2 j8 _; ^1 y+ ?4 Q: i
  38.     dwSize As Long
    ) d4 P  c" G2 Q
  39.     cntUsage As Long
    ' {' }/ w* k, s5 Z
  40.     th32ProcessID As Long5 O2 e: E3 o7 E9 Y  o* z; P! Z
  41.     th32DefaultHeapID As Long
    5 v( }% ]9 A/ P: X) N( x1 ~- S9 k
  42.     th32ModuleID As Long
    ' ]: l3 N# T/ [) {8 w  Y
  43.     cntThreads As Long0 a( f: _/ K, k5 X+ B
  44.     th32ParentProcessID As Long
      [  R/ m9 `# m. _, }# m* V& f0 B: n
  45.     pcPriClassBase As Long
    - ^1 `4 V. I7 W/ p* E1 r
  46.     dwFlags As Long5 d3 n1 F) c# }# {1 \3 t
  47.     szExeFile As String * 1024
      a* T; J7 k6 S; q7 @
  48. End Type. F' ^5 j1 n( R# h* B9 u

  49. 3 j, C6 y/ m: O7 w

  50. 3 p- m7 S2 R; p, b6 G# U" c
  51. ; ?7 ~5 u9 u+ q0 l( X
  52. Private Const PROCESS_ALL_ACCESS = &H1F0FFF* u. [) m! \6 _  q
  53. Private hProcess As Long9 b: }# I2 E" {8 |6 @2 H! V- h+ F
  54. Private PID As Long5 u2 z7 q+ @1 g1 P
  55. , [  [$ P; N8 l0 H3 Q( V
  56. 9 n# B  W8 t9 f2 J# x" P. i8 ?: W
  57. Private Type asmNum2 I7 {- m" n- m& T
  58.     nuM1 As Byte( s% m: N! N$ A9 M
  59.     nuM2 As Byte- m1 M" \; f: c# ^
  60.     nuM3 As Byte" P, ]7 @, H& }2 m
  61. End Type
    - c7 a5 R( |7 t# N1 j

  62. * M* @; j9 _2 f% c2 H0 g  ]  z( F
  63. Private adrTime As Long
    " ^8 W  H7 |+ \2 ^
  64. Private adrMine As Long0 n5 F! N- _! @0 a

  65. : R" D0 n: L) B9 d" c. u2 v2 R
  66. Private Function GetProcIdByName(ByVal ProcName As String) As Long
    6 H$ S$ Z, z( ~$ U9 a# b5 [
  67.     Dim PE32 As PROCESSENTRY32
    * k# v9 Z/ v! B  [, ]
  68.     Dim Procid As Long/ W- X1 Y8 J* d2 R, H
  69.     Dim hSnapShot As Long
    & G: E& q6 {; ]* c) o: k
  70.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPPROCESS, ByVal 0)$ _- E4 I' B9 }- N# q; B/ f
  71.     PE32.dwSize = LenB(PE32)7 l9 z  N4 o8 o, d+ e
  72.     Process32First hSnapShot, PE322 m- U" Y* d) R# c& m7 g
  73.     Do2 x8 N5 V- ^4 M" t% {. K' t& j4 r
  74.         If lstrcmpi(Trim$(ProcName), Trim$(PE32.szExeFile)) = 0 Then
    & c  l) Y+ ^! e4 i% K
  75.             Procid = PE32.th32ProcessID' _& _  t/ t0 y9 R  _" [1 z
  76.             Exit Do  i  i3 D- k5 ]- L% ^
  77.         End If* ]! `- Q  m4 M. I  }
  78.         PE32.szExeFile = vbNullString% H& l) a) Y" V
  79.     Loop Until Process32Next(hSnapShot, PE32) = 03 W# d, p0 j) k/ U, a7 |
  80.     CloseHandle hSnapShot
    4 R* K/ z4 Z. ]; Z4 W. Y& B& ^
  81.         GetProcIdByName = Procid7 f6 J5 C0 k# t
  82. End Function
    $ f) a& {" H' e, Y& h- y( j) B
  83. ! l( e7 o2 L: J
  84. * d5 s3 ~, u- j$ \7 E: J! j9 [
  85. - W# n+ k( L& n7 m, w& _1 U
  86. Private Function GetModuleBaseByProcName(ByVal ModuleName As String) As Long
    % {' {1 P6 j, i& H
  87. 3 X+ `5 c" _+ ~4 N" x$ \
  88.     Dim ME32 As moduleENTRY32, ModuleBase As Long$ T4 G* a1 ^6 C+ l6 L: X- p6 n
  89.     Dim hSnapShot As Long
    ! F$ j5 I9 }% G8 u
  90.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPmodule, ByVal PID)# y1 y, |2 [' d* k, \" Y
  91.     ME32.dwSize = LenB(ME32)8 ]4 R6 m% [. [" y/ \
  92.     module32First hSnapShot, ME329 s9 n( b. ^6 r, Q8 z% K5 }
  93.    
      V, n4 q* x1 v6 k& S
  94.     Do
    6 q& H3 z9 t  `  M! w4 H
  95.    
    $ `1 L2 `. {" x
  96.         If lstrcmpi(Trim$(ModuleName), Trim$(ME32.szModule)) = 0 Then. O5 F; K6 A  H) C/ R
  97.             ModuleBase = ME32.modBaseAddr1 U1 l0 W  Y9 Y( K5 [
  98.             Exit Do
    0 e% V/ b) r: v( E9 w- _
  99.         End If- R$ I1 m/ M, Z- L' X- Z' w
  100.         
    5 u, b+ |4 j/ w$ H: B# K0 f/ t4 O
  101.         ME32.szModule = vbNullString
    # P/ E; V( x" o0 S% C
  102.     ) `: v$ B& \9 i# v: U
  103.     Loop Until module32Next(hSnapShot, ME32) = 0
    # o$ u; o/ i. D' k
  104.     CloseHandle hSnapShot3 N- y- x- y3 W4 n( |
  105.     GetModuleBaseByProcName = ModuleBase
    6 W/ T( c/ n' r2 k0 ]4 E' D4 }# S( x

  106. ! @- T- ~% [7 @6 k/ x
  107. End Function
    * @1 ~' R4 `7 P) K' T: g! }8 X+ k- g
  108. 2 Y) x- ]3 l6 Z; @
  109. 7 F$ \  X$ T  D& I+ f' m  y' L0 {
  110. Private Function GetMemory(ByVal Adderss As Long, Optional Length As Byte = 4) As Long+ n, M$ }' K; f' E, j
  111. ReadProcessMemory hProcess, Adderss, GetMemory, Length, 0
    " H" E, ?, K, i
  112. End Function' Y6 L* I9 \* D1 B1 Z5 P
  113. Private Sub SetMemoryAsm(ByVal Adderss As Long, NumVal As asmNum)
    8 g  j) C# z6 ~: ]2 U
  114. WriteProcessMemory hProcess, Adderss, NumVal, 3, 0: I  E* P1 W: ^
  115. End Sub  y& r3 P( L; @- k7 T, m1 a

  116. $ {; T% C" N, v/ m1 F

  117. : o# }. o+ r$ t$ W! p: R$ U* O
  118. Private Function FindGame() As Boolean
    ; i/ f) S6 v/ A1 l
  119.    
    - _3 J0 B9 K' f( U" Z6 R, q6 J; p0 p1 {
  120.     PID = GetProcIdByName("MineSweeper.exe")
    : `9 J* H$ }" _1 d) V' N6 F3 G
  121.    
    . ]& O' u# |' a+ z5 e& `5 Z+ p1 F2 q
  122.     Select Case PID
    ( D# t% o7 U: T3 U
  123.         Case 0
      O% i# J9 M6 l: |
  124.             FindGame = False' f$ D/ z) Y) z; i
  125.         Case Else
    6 o. b$ X& G4 ?. K+ n& p- }5 s: }% R
  126.             Dim adrBase As Long4 U, |) Q0 Z4 T# o3 Z9 |
  127.             adrBase = GetModuleBaseByProcName("MineSweeper.exe")  {: E/ y, g6 t. x+ W
  128.             adrTime = adrBase + &H21446
    1 x7 q, c1 B$ D+ X. ]6 D, j
  129.             adrMine = adrBase + &H868B4
    3 l* K; z; C7 D! |
  130.             FindGame = True
      ?. Z( _9 u5 [3 {
  131.     End Select$ R3 l  Z2 e$ S$ Q" _
  132. End Function2 k; F$ n* d# ^+ T* Q2 `
  133. 4 g' |7 x- f* L  O. t. R
  134. Private Sub TrainerState(ByVal State As Boolean)% C6 v* e2 L7 y  |0 n- n
  135.     chkGameTime.Enabled = State; b3 C5 w9 P1 I
  136.     btnRefresh.Enabled = State0 a* w8 B$ s1 t1 p6 A2 m
  137.     Select Case State- P* b& H- T7 Q$ ~
  138.         Case True  Z$ A4 [8 U* T  L. x/ A9 w( |4 {
  139.             btnCatchGame.Caption = "ReleaseGame"- o: C7 c7 F; |% q0 g8 r: D+ Z5 R
  140.         Case False
    1 X5 @1 v; {' B" R
  141.             btnCatchGame.Caption = "CatchGame"
    5 {# I' C7 p  |/ D$ x
  142.             chkGameTime.Value = False1 r) G' H% U& g
  143.     End Select
    1 z5 M) g# ?1 x/ H/ H7 J  V
  144. End Sub6 [$ C0 p5 u1 @( g0 C
  145. * ]$ s8 d7 j: J: q) w; b, G

  146. ) \" ~2 A5 m3 b5 H; W. b
  147. Private Sub AsmState(ByVal State As Boolean)7 a$ a$ O  f& m( y& E1 l! _7 A
  148.     Dim asm As asmNum
    % j- ]' F" I* ]: r4 S
  149.     Select Case State- {) f) ~( K6 @7 q( E
  150.         Case True
    9 I2 O/ ]3 T4 ]" t9 F+ Z9 Y9 {
  151.             asm.nuM1 = &H90
    ( {# _; e5 a5 r3 N& ^0 _
  152.             asm.nuM2 = &H90
    ) J% m! e" J. c
  153.             asm.nuM3 = &H900 @5 ^/ {4 h' U# Y. l5 a9 P: [
  154.         Case False
    ' g$ x1 m9 N7 [" s( a& U. [0 m
  155.             asm.nuM1 = &HD9; y& k0 T4 R9 o7 S% h
  156.             asm.nuM2 = &H588 Y$ G9 ]( L/ ?/ _9 k
  157.             asm.nuM3 = &H1C
      E+ b8 P4 K7 h% P
  158.     End Select
    4 f9 x# O, H3 C1 \2 x9 g
  159.     Call SetMemoryAsm(adrTime, asm)
      j$ N$ L- I2 `( c- x* M# f
  160. End Sub; _1 Y2 D  [' {6 W/ I4 T% t

  161. - p+ A2 ^- t* i
  162. . |5 E+ g4 A( {' k' t- x! A
  163. Private Sub chkGameTime_Click()( x# y7 ^8 Q* _% w9 T
  164.    AsmState (chkGameTime.Value)
    & W7 l& J- E) m. ?; y
  165. End Sub. P0 E9 n& F8 m5 n4 A
  166. ) m7 C& c2 ]2 J: ~; V
  167. ! Z  Y1 y3 K- I, ^0 j$ z( h0 _) x
  168. Private Sub isOpen(ByVal State As Boolean)
    2 c: [5 z; v3 p  n
  169.         Select Case State
    . f$ k% M( \. |- E8 O( v
  170.         Case True" |. a0 {. H; V& W
  171.             If FindGame = True Then" c2 k$ f) @! @" n) J0 G7 s0 L
  172.                 hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, PID)5 P$ `% E3 e0 f& Q2 R2 n
  173.                 TrainerState (True)
    * `% w  r- E9 s) k' q! ]/ w
  174.             End If
    + q" t5 j2 E- |( a( R
  175.         Case False7 d3 G4 A9 P/ }: n- W: r. F$ b
  176.             If FindGame = True Then" {( g6 @; q2 a' _% e3 a
  177.                AsmState (False), v) [# @; B& Z& ?
  178.                CloseHandle hProcess
    " p  h- e" I9 V) g
  179.             End If/ n- }3 b: q) N
  180.     End Select
    5 x' ^, K- ?% c( g0 }
  181. End Sub0 L0 \, K2 j1 X1 ^& }
  182. ! V' X3 ~, ]3 b, m! c& v
  183. 8 ~) |# U8 N- I) [: Q4 X2 W
  184. Private Sub btnCatchGame_Click()( g! U7 L3 X$ n3 T- e
  185.     Select Case btnCatchGame.Caption' f& n! ?- Q7 @% K, p7 l7 n2 G$ Y
  186.         Case "CatchGame") V9 K2 B* l6 K: b& q
  187.             isOpen (True)
    : K( f3 F3 q5 ~$ {0 g# G
  188.         Case "ReleaseGame"! M' I- u% n  F" H6 S! \. d) E
  189.             isOpen (False)9 Q5 t! z! p! o3 s
  190.             TrainerState (False)& P2 C7 e/ a3 n5 ^
  191.     End Select
    " r/ _6 S5 u, k6 X' H$ c$ e
  192. End Sub* k* O' i/ ]. M- y! C
  193. 3 Q- a8 L; L3 W+ h' p
  194. Private Sub btnRefresh_Click()
    - d+ ?! V+ z5 E- |5 \3 U

  195. , J# r* T+ j+ z
  196.     Dim mineColumn As Byte, mineLine As Byte
    : [* `* g. Y8 m+ z' c. \
  197.     Dim adrPoint As Long, adrTemp As Long, adrColumn As Long
    8 A1 C( c$ t. C" _3 X0 Y4 m; s
  198.     Dim i As Byte, j As Byte
    3 G. O( ]9 |" n8 M! i) E% O- B
  199. 0 {# R4 m' n1 T  q! o1 U' |/ F
  200.     0 C3 O7 g4 L$ w# s# [6 \8 _
  201.     - b: W2 I% P) b
  202.     btnRefresh.Enabled = False
      ], k4 P; E& r& _: }: _' S! y' l. H
  203.    
    0 s( w: I/ \7 X1 d0 _
  204.     adrTemp = GetMemory(adrMine)
    6 @5 D% c: L9 k; I- m! E, x
  205.     adrPoint = GetMemory(adrTemp + &H10)& t6 B: f) r* [) y" Q" W' p8 M9 m
  206.     ! o# J  b% v# l& S/ g
  207.     mineLine = GetMemory(adrPoint + &H8) - 1% i$ v- W0 D( Z+ e4 B
  208.     mineColumn = GetMemory(adrPoint + &HC) - 1
    / a1 e4 j, i3 G3 O
  209.     - f) [9 m# d# s$ {/ E. ^
  210.     adrPoint = GetMemory(adrPoint + &H44)3 v" [/ ^3 v% c" H
  211.     adrPoint = GetMemory(adrPoint + &HC)
    ! f* Y% `- R# F) r, N
  212.     4 m9 X, H' @' l; J% _2 y8 e& [
  213.    
    ' I% O' R- J' ^# o$ E
  214.     7 P+ {: n  X) o6 O% U
  215.     For i = 0 To 30
    % a7 ^. M; h4 h" t. g7 @
  216.         adrColumn = GetMemory(adrPoint + i * 4)9 u0 H# H* ?- v; I& t, H6 w
  217.         adrColumn = GetMemory(adrColumn + &HC)
    ; I6 y  x: u5 W1 b. d0 s# i
  218.         For j = 0 To 239 k& j! o, i' ?$ T) }/ P
  219.             If i > mineColumn Or j > mineLine Then: {/ @2 W  r7 D5 l
  220.                 Sheet1.Cells(j + 1, i + 1) = ""
    2 \5 i" m! {5 D1 J9 b  }* r* V5 ?( Z
  221.             Else
    3 s( z+ O) Z7 ?! e
  222.                 Sheet1.Cells(j + 1, i + 1) = GetMemory(adrColumn + j, 1)4 h6 ~1 ~7 I& K( `7 P
  223.             End If
    , ^; k' v* I5 Q$ L& V
  224.         Next j
    , e, V4 Q% d% {
  225.     Next i
    - z3 a8 k5 k3 O& U6 K( |: D5 V
  226.     btnRefresh.Enabled = True( J$ M2 N! m( @+ ]- D# ?. ]
  227.     8 _0 |& p6 K5 f: X# u8 M6 K
  228.     2 }5 z/ i& V+ Y
  229. End Sub
    9 L3 {" @1 i& O# D8 n5 o
  230. ! n" G% G* {( g/ o( X/ C! X1 |: I
  231. Private Sub UserForm_Initialize()
    , @/ x# F" s) ?& W
  232.     TrainerState (False)
    3 `8 d3 G/ k' ]5 o
  233.     Sheet1.Cells(1, 2) = 1
    ! U0 f# V- Z* {; G$ C/ z, g& W) ]+ U
  234. End Sub/ G( e5 L  A* R5 N) v# {
  235. $ z  }4 x- v( ^0 Y. l8 x
  236. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    1 n' i- ]% {& }$ r2 ]3 t2 q3 \
  237.     isOpen (False)
    5 G- x( G/ @) I4 x3 N2 w! U
  238. End Sub
    $ S/ D) x8 p; Z+ M( v2 d& s
复制代码

6 B& v0 [' s& o) \0 y/ }
" Q1 |2 F1 s2 j  V2 M* U2 @  {5 e+ r6 y2 w- ~+ ^4 D& K

% Z7 W$ M! _1 V1 p2 v( c
发表于 2014-6-21 18:42 | 显示全部楼层
EXCEL2010盡頭.jpg ! t  s7 U7 j; R7 S1 B  x
事實證明Excel是有盡頭的﹗(謎:你是閒到甚麼程度?﹗)
& j5 K7 z, B) G" X2 D0 L8 e
发表于 2014-6-20 12:29 | 显示全部楼层
excel在我們這裡是必學的…
发表于 2014-6-20 12:45 | 显示全部楼层
厉害还有源码,学习* H9 C: F; U3 W9 Q0 y
excel我只拿来做最简单的表格。。
发表于 2014-6-20 18:24 | 显示全部楼层
完全看不懂!!!!。。。
& a! m% H* Y6 P+ R
8 ~6 ~) ?0 c# b4 @$ b. [$ A; X不明觉厉只能跪
发表于 2014-6-20 18:49 | 显示全部楼层
尗又 发表于 2014-6-20 18:24
. t  B5 W+ l3 v5 Q完全看不懂!!!!。。。4 k0 K6 T- k' }  |9 B
! l0 K5 O, K' X( @2 y: u9 I& ~& f
不明觉厉只能跪
$ Q- u. z& i6 E
這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…" n( u# l7 r8 Y9 J; k# {
发表于 2014-6-20 19:00 | 显示全部楼层
NataieChan 发表于 2014-6-20 18:498 Q& b0 Z5 q8 \: ?2 y; r
這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…

3 i9 m9 T1 _' C) n哈哈那是,因为我对修改器的东西比较感兴趣啊
0 [' V8 X1 f5 @8 Y, h
发表于 2014-6-20 20:32 | 显示全部楼层
止慈 发表于 2014-6-20 19:00- ~$ r& J5 Z( g6 m1 T6 Q
哈哈那是,因为我对修改器的东西比较感兴趣啊
8 k: Q0 C- |9 T0 j, g/ j
莫非你勤制修改器的目的是因為懶得自己去玩…. z( S6 Y& ~$ C3 U( U
发表于 2014-6-20 20:57 | 显示全部楼层
NataieChan 发表于 2014-6-20 20:32
  O, r4 }% k/ l$ E& h9 t$ @4 M莫非你勤制修改器的目的是因為懶得自己去玩…
3 |6 ~: Y% }- o( I* z( U. W
不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、跑进场景、走一段路、去点制作人、看目前有什么通告——这里还只是看到目前有什么通告,还不一定想接,也不一定能接,或者现在就能接。玩得烦了就自己琢磨减少一下流程,毕竟游戏是要有乐趣,但鼠标点多了也太繁琐。% a3 j1 f# E+ t  d/ G
而且我玩游戏是修改派,不修改无乐趣。。
5 Y  i$ i. e& G" O; u0 v) [  J, w9 E- k0 r  n7 m# z
有点跑题了。。再回到excel上,小N你们学校里都学用excel做什么?我会的只有最基本的表格和加加减减求和比较之类的。。* `& Z, X# G! e7 S# ^- E
* T) K" q! r+ T7 n, G
再想起来,我因为需要,想过用excel设计一个东西,大概也是存一定数据然后按自己需求可以随机提取之类的,搜到一篇文章还提供了源码的,结果源码链接无效了。。
" I; X2 V* g( Z* w0 L* \& Q5 j; Q' `6 G" P0 }, b$ Z
# ^$ a  i( r* A8 w
. ~' ~) V, w  y/ r! L
止慈 于 2014-6-20 21:12:09 补充以下内容
9 W7 D: n7 s! I5 ^0 a' M/ G8 |
( l: p! Z  v2 e  G0 Q求指教。。打开附件excel,启用宏以后,那个窗体怎么出现。。我编辑宏能看到源代码,excel不会那么多不知道怎么让那个窗体出现。。) d+ w1 G/ G) {
- r/ Q7 ]7 n5 r0 H# {9 J
在我这里) p1 S9 }' ?1 g' H( Q6 b, K
  1. mineLine = GetMemory(adrPoint + &H8) - 1
复制代码

3 R$ `- \9 w: F会溢出
4 O! q: t5 S4 a- P/ M
' F6 Q- s4 V; @; L  t不过没关系,只是做着玩玩的,不用修~我是试着运行了一下然后出了这个错误,就顺便说一下( M/ |# z, h% A6 i
( N) m: a! Q- a3 Y' D

1 c, x, E! A" l
发表于 2014-6-20 21:15 | 显示全部楼层
止慈 发表于 2014-6-20 20:57
4 ]% L% x# j8 A+ m不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、 ...
' A6 K. J2 J, C, R$ `6 N* b- Q! y
做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…
/ ?* u5 {/ g8 V  g9 X6 P
% ?+ J, }# V$ @# |
, W! {+ J, G, h* r9 @NataieChan 于 2014-6-20 21:19:08 补充以下内容
. G6 O1 Q5 L0 k! Q# [0 W9 P- c$ R
* T/ f5 y2 o" q( ?5 X. @8 b) s做各種的圖…
发表于 2014-6-20 21:23 | 显示全部楼层
NataieChan 发表于 2014-6-20 21:15
9 e& j- h4 X& M2 e! [2 @( j做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…

3 o5 [6 ?6 q) Z% u: n/ L[strike]做什么奇怪的东西说出来让我们乐一乐[/strike]
5 A6 ]% [- k4 g3 C! ^4 g
" B1 H+ }7 `9 n5 S8 i# T2 d排名还好啊,不过也许你们的是比较复杂的排名,那就麻烦点吧。。2 m& C6 H7 W6 x/ L" b( a) @

( t5 s$ h& z7 j, H+ G! Z* _以下是编辑:
, ]* s& q. a( V
! N& U% G) k5 z$ W1 C- L& b; d  o. u刚刚没看到你补充的。做各种的图的话确实比较麻烦。。. _& ~0 i0 M8 ^( s
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|明志略 |明志略已经运行了21年3个月13天

GMT+8, 2025-6-11 01:28

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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