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

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

[复制链接]
发表于 2014-6-20 02:58 | 显示全部楼层 |阅读模式
本帖最后由 differentrain 于 2014-6-20 16:05 编辑
. z2 R% h( G# v, l) F5 m, P1 p5 g6 T8 x3 C6 O
不怎么用Office系列,今天偶然和朋友聊起来,突发奇想用Excel做了个扫雷的修改器....[em1127]
* e2 ]* M* v% s( Q虽然不会Excel,不过VB咱小时候还是学过的...[em1124]( r& s: c- }. G7 _% `

+ f. Z' b5 [$ q6 }9 c" z% i( U我用的Win7的扫雷,其他版本的估计不行..可以停止计时和在表格中现实地雷位置...
" {& t3 E0 z0 s' E4 J& O) |1 t% F& @附件就是那个表格...如果版本不对就直接看代码部分自己复制过去也行..
, f6 z& T& J8 G顺便说,VBA简直反人类..MS为什么不出VBA.NET啊...大段的代码要自己写,而且抽象性巨差....  B, j* `) Q% g& `
( R5 X1 w6 x7 ~" w
MineSweeperTrainer.rar (22.27 KB, 下载次数: 6)
7 r0 x! `$ [: {7 Y0 o- \; m* k; t8 ~  t( p' \' A
1.jpg % }/ g0 K1 y4 x( G4 }( p
9 z- `. F* O1 p
5 y7 x2 w3 _* O3 l! z0 C0 Y
  1. 【控件】+ e4 v$ R1 k7 a2 y
  2. / U7 y! w2 k) \+ [' g+ T
  3. 窗体:frmMain3 a5 ]; ?. o3 c( ^. {: x
  4. 按钮:btnCatchGame,btnRefresh+ W' v3 U! Z) t3 L  h: b, ^/ B
  5. 选择框:chkGameTime
复制代码
! S1 }" @. ]  b' M: ^

5 I; _3 o4 O, V# j3 M( `
3 k- w" e% N6 a1 A% U: E' v& W
3 o. E# j/ ?' _1 G
  1. 【代码】6 O( n5 E: U# D" r$ X
  2. - b3 ]; ]* u8 N- k  N$ {

  3. 7 P( Z7 }- Q' R$ |1 \; }4 k3 s2 k
  4. Option Explicit+ u& @  n/ ]8 z1 I3 {
  5. $ h$ d- h, s- H3 F
  6. ) S) S. U7 S+ b+ ^5 j4 d
  7. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long
    ( g+ O' Q8 K% ^! @  J+ z
  8. Private Declare Function module32First Lib "kernel32" Alias "Module32First" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long
    / |% s1 K5 a5 k/ e9 a7 h
  9. Private Declare Function module32Next Lib "kernel32" Alias "Module32Next" (ByVal hSnapShot As Long, lppe As moduleENTRY32) As Long! h9 S4 H+ ~4 ]9 v% d! E; D
  10. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    1 v, |' o" l1 h$ P9 k) M4 k
  11. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, lppe As PROCESSENTRY32) As Long
    % I. J: h  v5 d
  12. Private Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
    ! L, E8 w& q8 Q2 X
  13. ) R9 I! N0 l( _* ?0 x
  14. 6 ^( \3 h* {3 U# U# s% J, E  z# N
  15. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long+ g' {, t" F& b* U# w1 ?! v& ~0 N! k" O
  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
    9 }  G2 a* K% v" b, k- b# n
  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
    3 C% x) x7 e- `+ z7 q
  18. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
    * Q& E3 K/ c) D" H+ g
  19. 4 W2 d# }  r2 U' h1 H

  20. ) V7 ?- X1 C+ Y. m; r9 U
  21. Private Const TH32CS_SNAPPROCESS = &H2
    ' H- z  W/ p; {) I0 |
  22. Private Const TH32CS_SNAPmodule = &H8. A' _; m" T5 \8 T0 \% @0 O/ ~
  23. Private Const CB_SHOWDROPDOWN = &H1573 ~/ N7 ~4 [; L3 ^0 {" t; N
  24. Private Type moduleENTRY32, C, {& R# f3 |: u
  25.     dwSize As Long
    ' W* R8 A- Y8 R; @) k; p
  26.     th32ModuleID As Long3 B* Z3 b% `. E& d" ~
  27.     th32ProcessID As Long
    ( m7 p: H& X" `0 A
  28.     GlblcntUsage As Long
    8 K# r4 X4 v) z7 m; Z  N& L' |
  29.     ProccntUsage As Long
    . U1 J5 S$ A( C$ G" C4 c  x, M9 j
  30.     modBaseAddr As Long) u" N* O. J' @4 U  M- l- V4 b
  31.     modBaseSize As Long
    # Q9 p% O7 }+ e  g2 W- H5 V
  32.     hModule As Long2 C/ T3 R+ v/ G  t
  33.     szModule As String * 256
    & n- u& [) Z! j) v. S  @/ U
  34.     szExePath As String * 1024. M4 Q2 u* ~( q; ]
  35. End Type  S' K5 r. j! D7 b
  36. # q4 g0 f5 L0 m
  37. Private Type PROCESSENTRY32) {8 ]' l9 ~- \+ m# [+ M, z
  38.     dwSize As Long7 S5 H! @* B5 E( H! D2 j
  39.     cntUsage As Long
    * F4 s6 Y4 P9 @; B; h
  40.     th32ProcessID As Long
    8 A& c. B' f( f3 i7 W% P* }* _
  41.     th32DefaultHeapID As Long, I9 q5 i$ Q2 X( T
  42.     th32ModuleID As Long
    ; w! z" A! B  s  e: ~" h1 p# ~
  43.     cntThreads As Long
    2 Q$ k* T8 @! y% l5 i
  44.     th32ParentProcessID As Long, X% W) M9 o8 ], ]3 {& D1 {
  45.     pcPriClassBase As Long2 B2 U5 B% M( c& l
  46.     dwFlags As Long
      X* e; R: I0 Q/ o  ^  T
  47.     szExeFile As String * 1024
    1 W$ j6 j% A, L* y- ~
  48. End Type
    1 j" m1 A- Z. X) ~2 x( G# h

  49. . ^  V+ K2 A) H

  50.   p6 w- }7 ^4 X+ r0 c" Y; ?
  51. ; n# A2 B' _8 A$ ?8 S0 v' [
  52. Private Const PROCESS_ALL_ACCESS = &H1F0FFF; d9 E3 C  X9 D9 X9 L3 {5 p1 p# D1 Z
  53. Private hProcess As Long
    2 W3 n- {/ U. I1 {: R+ o4 D
  54. Private PID As Long& ^& ^$ I0 C  U# V  H
  55. ) i# u4 |! P! k5 s
  56. ( _$ _$ I( j  s% h* A
  57. Private Type asmNum4 A3 f8 H7 R, \* ~8 @& K! H5 f
  58.     nuM1 As Byte& k0 [/ F* J% |) Z: K3 t
  59.     nuM2 As Byte
    8 k! h' a5 C0 |! W' z7 I
  60.     nuM3 As Byte& p7 W; c9 z, a4 i- p
  61. End Type$ g' c/ O1 A/ v

  62. $ z1 x( |! h% I8 G
  63. Private adrTime As Long
    ( `" M" ~! |* Z, ?: v1 m: i
  64. Private adrMine As Long
    - t  H: a7 ?8 l# D  o

  65. , T' B' M6 a) ^' [8 L8 G( u: b, r
  66. Private Function GetProcIdByName(ByVal ProcName As String) As Long
    * l2 Q/ O! X/ ]! y
  67.     Dim PE32 As PROCESSENTRY325 s& m; j! r: l& K. a/ F8 _, |5 S! [
  68.     Dim Procid As Long4 H* G0 D4 W! C- O$ |
  69.     Dim hSnapShot As Long1 N- P( {5 H4 Z% g
  70.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPPROCESS, ByVal 0)% U* f4 I+ g6 s3 S
  71.     PE32.dwSize = LenB(PE32)6 i* R% U1 T( k0 X5 k$ A$ l* o$ O
  72.     Process32First hSnapShot, PE32
    ! R* Z& R6 I' f9 p3 C* [
  73.     Do
    7 Y% v  A+ |/ h% X1 q0 Q! X& g  \
  74.         If lstrcmpi(Trim$(ProcName), Trim$(PE32.szExeFile)) = 0 Then
    & s, {) d7 f1 `, x2 X) ]
  75.             Procid = PE32.th32ProcessID0 N  |) l! |' z/ ]- F2 P
  76.             Exit Do
    0 M* j4 p# h# L+ k
  77.         End If
    ; o8 i0 k  Y3 X, s  ?
  78.         PE32.szExeFile = vbNullString
    : n* |4 @* d* O' v
  79.     Loop Until Process32Next(hSnapShot, PE32) = 0& \4 {, ~( c2 J/ M2 ^6 q5 M
  80.     CloseHandle hSnapShot  S3 H5 L" C; t4 O6 y% z1 h
  81.         GetProcIdByName = Procid$ ]7 R) H" ]' O/ Z. L& S( V, R
  82. End Function* X- [0 E' ]. t  o. u1 V1 r

  83. 2 @. K9 f$ J& H

  84. " U9 s- w, ?, G) r# r/ R4 X
  85. 7 C  ]% r$ F+ V1 p4 O2 F9 Y
  86. Private Function GetModuleBaseByProcName(ByVal ModuleName As String) As Long
    8 x0 B- `& }3 N8 j. v6 [) O

  87. # q. y2 y8 z$ B
  88.     Dim ME32 As moduleENTRY32, ModuleBase As Long
    : F1 V6 y: c* F( v/ i' l! k2 Q9 f/ K
  89.     Dim hSnapShot As Long
    ! ?! L& A0 ^# F* h6 d9 M* I/ V" ~# x
  90.     hSnapShot = CreateToolhelp32Snapshot(ByVal TH32CS_SNAPmodule, ByVal PID)
    , k2 l9 v& Z8 S2 x2 e2 U2 ]1 h) P
  91.     ME32.dwSize = LenB(ME32): K9 F1 Q: m4 ~1 W
  92.     module32First hSnapShot, ME32. ]! O% i& ?( O: A! ?
  93.    
    2 n6 d" ~7 X* M5 M# a
  94.     Do
    . W5 E7 U6 N" n/ x' z
  95.    
    % l3 R" K/ L3 z$ m
  96.         If lstrcmpi(Trim$(ModuleName), Trim$(ME32.szModule)) = 0 Then7 R% [' b/ y/ k' t0 k1 W0 F  R: p4 P
  97.             ModuleBase = ME32.modBaseAddr
    9 y5 j" m  m! {  \
  98.             Exit Do4 D' T& y, u8 @5 f6 Q, {8 x
  99.         End If% a) {' y0 W) _4 c
  100.         
    1 `  D2 k2 [' m) |) X( i
  101.         ME32.szModule = vbNullString5 N/ q) o* p- ]! I) P' |
  102.    
    * C: n+ Y: \. L4 |' i
  103.     Loop Until module32Next(hSnapShot, ME32) = 05 v9 X7 [. R* l! G6 G: U
  104.     CloseHandle hSnapShot' [: v6 A! N3 D0 p4 z, ^5 W2 y
  105.     GetModuleBaseByProcName = ModuleBase5 Y6 D& w$ D8 k' f6 _3 f& F; `  [

  106. ( A  m8 E% T0 e: R+ r4 L
  107. End Function
    : O& W) k: C" `3 ~# _

  108. - n0 s% D' o5 w/ r
  109. : D8 G2 n; U, r8 M
  110. Private Function GetMemory(ByVal Adderss As Long, Optional Length As Byte = 4) As Long
    9 j9 U4 \! j! y- O
  111. ReadProcessMemory hProcess, Adderss, GetMemory, Length, 0
    ) z5 F) N$ C2 |
  112. End Function& C% q# V, y) a1 o6 E1 ?
  113. Private Sub SetMemoryAsm(ByVal Adderss As Long, NumVal As asmNum)' A2 ]! J  P: G3 |7 ~0 W
  114. WriteProcessMemory hProcess, Adderss, NumVal, 3, 0
    # S" h! e5 ?+ {1 [7 u
  115. End Sub
    , C$ ?, F9 Y% L: l5 V6 t

  116. ( C# k; h, c! A5 i; W+ c

  117. ' D) Y" K8 }  p. V
  118. Private Function FindGame() As Boolean
    6 t  P. `/ y/ f" x- z
  119.    
    $ K9 x2 K/ ?6 o: _8 U1 b
  120.     PID = GetProcIdByName("MineSweeper.exe")8 _: j6 i7 I3 F& S
  121.     9 H' p( G7 D& Q6 }
  122.     Select Case PID
    ( U( L! Z% a; a  s+ U0 t  L4 p+ f
  123.         Case 0
    " S) U6 W) b$ [! g: c, v* k" h
  124.             FindGame = False
    0 c4 ]  q: X! p' i! S3 F
  125.         Case Else5 N: ~' {( p6 {
  126.             Dim adrBase As Long/ q/ `! T& u5 T6 h9 j/ F5 g( u
  127.             adrBase = GetModuleBaseByProcName("MineSweeper.exe")
    ' k5 S0 \6 l2 U& Y1 q0 w7 {
  128.             adrTime = adrBase + &H21446
    * z& T: v+ j4 E8 }7 m. D4 J8 |% _3 e
  129.             adrMine = adrBase + &H868B4  `- q. M/ }! H  {& R
  130.             FindGame = True; e2 I* p  b# Y0 N1 g4 {& L
  131.     End Select
    0 Y7 l0 o3 ]8 ?' p) ?( o& I6 y
  132. End Function* F) J# F: H/ R1 R0 s
  133. 6 l7 S9 p2 v4 I) }: Z/ Q
  134. Private Sub TrainerState(ByVal State As Boolean)2 T6 y% T" }! R; l6 Z! P( {
  135.     chkGameTime.Enabled = State9 [4 S% A' |0 M7 S: N/ V9 x6 j
  136.     btnRefresh.Enabled = State
    $ r9 x) R8 a, L
  137.     Select Case State2 `! U+ Q5 s: m& {- B/ |
  138.         Case True: O& }2 A6 L0 B. h
  139.             btnCatchGame.Caption = "ReleaseGame"
    % T! P9 K, e# p0 V5 N9 V% D: l
  140.         Case False& H4 y8 f! F0 I) y
  141.             btnCatchGame.Caption = "CatchGame": Z' I$ A5 |5 C. C  O
  142.             chkGameTime.Value = False* W1 a$ s. N+ m+ E  e$ X8 q* j
  143.     End Select
    " h" ^# `6 Q" \% r. u
  144. End Sub
    ) `6 [0 C! e# X/ ~

  145. ( \& r$ Q2 R1 H/ o( A
  146. & C4 m7 X; i2 I
  147. Private Sub AsmState(ByVal State As Boolean)
    ) V/ K' h: h- j" S/ B# m6 ]0 e
  148.     Dim asm As asmNum
    ) |7 @2 I, d- A) p: U5 C7 N8 v
  149.     Select Case State
    8 p" n5 u7 E# U9 z. A7 \1 p% z
  150.         Case True) Z8 w, t# H5 T( i0 i  x7 m
  151.             asm.nuM1 = &H907 q' F5 t2 \& ]: B8 e
  152.             asm.nuM2 = &H903 |5 E; k/ K& ~6 D! \7 @; E) P2 j; B
  153.             asm.nuM3 = &H90
    2 ?6 z5 c) C; z; k" `/ `# X' o
  154.         Case False$ r0 e: V6 K! d" L9 B8 h+ ?
  155.             asm.nuM1 = &HD9
    3 m8 Y6 E# M3 o. O# Q! b, p
  156.             asm.nuM2 = &H58% C! _- J6 U* w7 j. q
  157.             asm.nuM3 = &H1C8 ^% J( i, r$ y: J4 {( _" [- E( N
  158.     End Select; {* s# @- |; m' X0 I3 N# E* e
  159.     Call SetMemoryAsm(adrTime, asm)( @6 Z4 ]$ P6 ?& F: s3 |
  160. End Sub4 p, ]/ o. U. v1 S3 D: J% E
  161. # F# k2 k( x" x) g4 M
  162. + X. t% I1 G+ s8 m
  163. Private Sub chkGameTime_Click()
    ) ]* U$ G. r$ W- z- d$ Q* V/ X
  164.    AsmState (chkGameTime.Value)6 R/ Q) i! c# m% e) \$ q
  165. End Sub
    + j* P0 T6 A) R9 e' B: @+ b' U
  166. 0 ^& X0 b$ u: J9 }, V1 b4 j
  167. ' q3 p# w! j' S: J$ T/ L& F
  168. Private Sub isOpen(ByVal State As Boolean)
    ( f! O( O0 T) z. ^* j" f5 Y3 J( i
  169.         Select Case State
    % g& Z& A* y& A6 p
  170.         Case True1 J: t) D5 [! }# o, z* R% ~; A
  171.             If FindGame = True Then
    ) e2 [5 B; f5 a  \' f7 o& a
  172.                 hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, PID)/ ~( l% s3 ?2 W& G" F2 \
  173.                 TrainerState (True)' n6 L) {8 ^- _  u6 \' g# B
  174.             End If0 A- T5 m) I* L* n1 o) C9 M3 h8 a' o
  175.         Case False# x9 ]+ L$ U1 t8 S
  176.             If FindGame = True Then. }  u- a8 Q5 u, o3 _6 W
  177.                AsmState (False), w* h3 M6 ]! ^/ v  w: @
  178.                CloseHandle hProcess
    2 O4 W5 ?$ l! y
  179.             End If
    * _$ S8 j  S5 f3 y
  180.     End Select7 I; A8 n0 |: P
  181. End Sub6 T' q; D1 z5 a' A9 E+ v! p0 ]/ _9 L- ~
  182. * P3 D7 A) a( f  V
  183. / X3 ^% P* E; D
  184. Private Sub btnCatchGame_Click()" Q7 r8 G  W1 a4 x% u* _
  185.     Select Case btnCatchGame.Caption
      ], ^4 [: c4 ^8 B
  186.         Case "CatchGame"1 ^' N9 [) ?" |; p1 O  y. k
  187.             isOpen (True)
    " q# y" |! N, [) D
  188.         Case "ReleaseGame"
    . L4 K4 M$ z& K3 ^( c) H
  189.             isOpen (False)
    % t1 [+ h: l1 n6 W" c/ P$ p! r% E
  190.             TrainerState (False)
    ! K+ [' N. x+ ?: I# k6 H( m
  191.     End Select
    / q6 O- b3 U5 X% A, a6 z6 a6 L
  192. End Sub5 Z* o4 d/ V8 {
  193. 9 i# W9 v9 x) r9 l- G2 H4 U1 j
  194. Private Sub btnRefresh_Click()
    : U' w. R7 }4 u. `, [

  195. - r& f4 P/ D9 b% i
  196.     Dim mineColumn As Byte, mineLine As Byte
    & B" s. R* ^7 y
  197.     Dim adrPoint As Long, adrTemp As Long, adrColumn As Long
    ) g0 ~  e( U8 V; y) y7 [5 k6 z
  198.     Dim i As Byte, j As Byte
    2 @# x$ U7 G6 Y/ B! ~, i
  199. $ |% o$ C4 A2 [! L: T: e
  200.     3 V) Q6 w0 y* D5 u( O: G
  201.    
    8 N- ?; `6 m8 F! f1 a) r. o& k
  202.     btnRefresh.Enabled = False
      G4 P! f" L; w0 g
  203.    
    & e2 g4 u9 ?5 b8 }+ c
  204.     adrTemp = GetMemory(adrMine)
    9 A% m  G0 z* [) s) i* ^2 Z
  205.     adrPoint = GetMemory(adrTemp + &H10)
    6 F* ~2 A9 L3 r' h. ~. i
  206.    
    + u' K4 K- k( c0 L! t% c
  207.     mineLine = GetMemory(adrPoint + &H8) - 1
    ) U3 y7 m+ a3 [7 v
  208.     mineColumn = GetMemory(adrPoint + &HC) - 1
    5 C  G9 @) a! v2 S5 u# q  _/ p
  209.    
    8 h' k5 I$ [0 j( M  }8 X5 Z
  210.     adrPoint = GetMemory(adrPoint + &H44); d0 G* a7 t9 N6 F" M
  211.     adrPoint = GetMemory(adrPoint + &HC)
    . o8 [# A  J3 E: Z, _8 W, H7 W& c! t
  212.     ' m. K: ?+ ^! c2 J2 A2 Z
  213.     : L" Y+ L1 w$ p0 ^0 [9 M4 Y* h
  214.     ( x' G' s5 f* `1 Q, V
  215.     For i = 0 To 30
    + i6 ?$ T6 X6 X' |) V; M% ]7 T, r
  216.         adrColumn = GetMemory(adrPoint + i * 4)4 d4 x7 w* W8 V7 h
  217.         adrColumn = GetMemory(adrColumn + &HC)' M: w% d) e1 S5 ^2 I3 s) t2 M
  218.         For j = 0 To 23* L* z+ U$ E# c+ T% G" {5 V
  219.             If i > mineColumn Or j > mineLine Then
    : q4 V% a$ [% x- Q8 \( J' O& i
  220.                 Sheet1.Cells(j + 1, i + 1) = ""' G) U3 q: d2 }. c: g
  221.             Else9 L4 _0 w4 `8 y& g. E5 C
  222.                 Sheet1.Cells(j + 1, i + 1) = GetMemory(adrColumn + j, 1)
    ! R# z8 N2 Y+ Z) g% I, ^
  223.             End If. A/ v! Y! d2 ~/ c4 w9 F
  224.         Next j
    * l% g* H  Z4 V
  225.     Next i+ ]( Z9 a. V: F+ P5 x9 C4 a
  226.     btnRefresh.Enabled = True7 G3 V. o2 F  y* \
  227.     2 ~' t& F4 A2 v# X0 z: C( L8 R
  228.     : |8 X. [+ W$ [- E! O; O
  229. End Sub* N9 N8 b9 E0 i- p. \' l
  230. " v. K+ Z5 p: `( r% @
  231. Private Sub UserForm_Initialize()- [0 q8 z+ L, }- {& }3 k7 T
  232.     TrainerState (False)
    " S5 P& j  v  B& D1 O
  233.     Sheet1.Cells(1, 2) = 16 o0 |) e) l8 _. u! S
  234. End Sub
    * o& U9 L0 k: z+ t" Z

  235. ) o( C- ]/ c2 T, _6 W3 p
  236. Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    5 |9 X+ ~+ D# q' s0 d1 ~/ @1 J8 W6 s
  237.     isOpen (False)
    # a7 ^3 S1 J- |
  238. End Sub
    0 ~! _- I, ?8 z! [' j" A
复制代码

' j7 @! d9 ]' J" v2 y; b. i7 c6 [# N5 a5 I4 a1 O% m; q: k$ V
+ A! b+ ^0 e' |
. c3 P$ M* M# @7 L3 S' e% j( l
发表于 2014-6-21 18:42 | 显示全部楼层
EXCEL2010盡頭.jpg
( d7 t. ^2 i! E! Q' t/ R% v事實證明Excel是有盡頭的﹗(謎:你是閒到甚麼程度?﹗)0 x1 a* t1 J7 [7 @1 j/ j# D1 j1 Q
发表于 2014-6-20 12:29 | 显示全部楼层
excel在我們這裡是必學的…
发表于 2014-6-20 12:45 | 显示全部楼层
厉害还有源码,学习
; Z) K6 W0 u8 X+ L* z, b% iexcel我只拿来做最简单的表格。。
发表于 2014-6-20 18:24 | 显示全部楼层
完全看不懂!!!!。。。9 ?4 C: i5 q! W5 V
! x4 G  ?( d9 V; A: Q
不明觉厉只能跪
发表于 2014-6-20 18:49 | 显示全部楼层
尗又 发表于 2014-6-20 18:24
) o% T5 E8 b! T0 P) t1 G完全看不懂!!!!。。。
0 Q  ?7 l* ]+ w2 m7 i" G1 n5 n1 o  N% G% o3 H5 \$ a3 S
不明觉厉只能跪

' b( `, F$ T2 B% y5 n' P這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…1 m' ?+ D! a1 O' t7 g; D) q
发表于 2014-6-20 19:00 | 显示全部楼层
NataieChan 发表于 2014-6-20 18:49
2 w" t+ r  s7 X9 C1 u這位很厲害噠﹗帶了修改器來報道﹗大慈姐姐很歡喜的樣子…
5 X% n. S$ O" G' c4 B/ T
哈哈那是,因为我对修改器的东西比较感兴趣啊
: M" L: d* _! N% R6 \6 }
发表于 2014-6-20 20:32 | 显示全部楼层
止慈 发表于 2014-6-20 19:00
' b6 |* u& o) l2 ^; v' B  u哈哈那是,因为我对修改器的东西比较感兴趣啊

8 ]6 q8 Y& m. y- @. h. t莫非你勤制修改器的目的是因為懶得自己去玩…
2 u" D6 L5 I% d! X) D8 j9 L
发表于 2014-6-20 20:57 | 显示全部楼层
NataieChan 发表于 2014-6-20 20:32
# @# n# s% S4 Q1 i) t4 y% E莫非你勤制修改器的目的是因為懶得自己去玩…

. X- U' c$ ]+ C& {. C) Z不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、跑进场景、走一段路、去点制作人、看目前有什么通告——这里还只是看到目前有什么通告,还不一定想接,也不一定能接,或者现在就能接。玩得烦了就自己琢磨减少一下流程,毕竟游戏是要有乐趣,但鼠标点多了也太繁琐。
5 g. t0 i  p5 @& t2 H8 ]- Y" T% u而且我玩游戏是修改派,不修改无乐趣。。6 d8 i0 R) f( Z# ]* \; C

, W; _! o& R, J9 @: Q有点跑题了。。再回到excel上,小N你们学校里都学用excel做什么?我会的只有最基本的表格和加加减减求和比较之类的。。
* P: D, o7 b- I  J. b% e
' H* n  D  L8 W0 M+ K再想起来,我因为需要,想过用excel设计一个东西,大概也是存一定数据然后按自己需求可以随机提取之类的,搜到一篇文章还提供了源码的,结果源码链接无效了。。+ |; ]  y+ U* O; f1 p! G; A+ P  b8 C2 _
! o! Y) l, F% G0 f+ E
6 E4 f" x" ^/ D; d

* p: N; [2 _5 v7 B1 j止慈 于 2014-6-20 21:12:09 补充以下内容5 y' r; `" t- n4 n# t
+ T. ~4 d+ ?* M7 H
求指教。。打开附件excel,启用宏以后,那个窗体怎么出现。。我编辑宏能看到源代码,excel不会那么多不知道怎么让那个窗体出现。。4 L) A& \1 ~1 ~  f4 e+ |. V6 Z  y
9 q# z! w7 s- \( T7 |3 o
在我这里& _4 m" ^% ]5 C6 W5 X- b3 v% E
  1. mineLine = GetMemory(adrPoint + &H8) - 1
复制代码

  K+ ]5 t% _$ Q3 o+ w" ]; u: Z会溢出0 [* u% V5 j: O# o8 E: A

: g7 ~! E+ {: T. U/ `6 B不过没关系,只是做着玩玩的,不用修~我是试着运行了一下然后出了这个错误,就顺便说一下* s4 t/ S9 s$ P) u9 l/ O
% |# k9 L6 |2 w( h" }& B/ J( h

4 }0 x; }( t3 v' o4 T8 e( I
发表于 2014-6-20 21:15 | 显示全部楼层
止慈 发表于 2014-6-20 20:575 z  W8 L' l; \2 y
不算勤,不过目的确实是为了省事。自己在玩的时候发现很多不合理的地方,比如说接通告,我要一家家转3D、 ...

$ G; U1 I$ R$ X/ X" f; Z做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…
- Z: |1 D; S6 K/ c9 k4 `6 x; n5 j. S* s& i+ a& J: H1 U/ |- `+ k* O

# \) X4 r5 k+ V3 b1 j0 ]NataieChan 于 2014-6-20 21:19:08 补充以下内容) t1 g% ]8 n0 n+ m6 g) J. s  S: M
) m/ H$ A8 m1 H/ v# b& @& z" x
做各種的圖…
发表于 2014-6-20 21:23 | 显示全部楼层
NataieChan 发表于 2014-6-20 21:15' y6 `+ R- e4 J2 L# U7 a0 N% L; n
做各種奇怪的東西…說起都是淚…最討厭排名…很麻煩…
0 k  w1 k% f2 j; {6 J3 U
[strike]做什么奇怪的东西说出来让我们乐一乐[/strike]
) m! C- Y5 Y% c2 V  b3 ~7 T+ x) r7 b
, ^$ |* T& ~5 a5 Y$ t* Y4 ^2 a排名还好啊,不过也许你们的是比较复杂的排名,那就麻烦点吧。。
" E5 r$ y# M, r5 t  L, x% Z, B1 g; q* l4 T5 ~0 |: v
以下是编辑:
! `8 Y% F, O) e/ X7 K5 ^$ ~9 q
2 o# x, p9 |- C7 G- u% L刚刚没看到你补充的。做各种的图的话确实比较麻烦。。
4 t8 U; P$ O* U! N3 ^! v" e
1. 严禁讨论盗版
2. 除专门水区以外(报道/JQ版)请您注意要减少水分哦。水区热烈欢迎以下内容:灌水,版聊,勾搭,抢沙发
3. 更多发言规定在这里
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-1-22 23:56

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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