$7.49 .com domain with free InstantPage Website Builder$1.99 Web Hosting   捷飞网络官方淘宝店   Godaddy 优惠码
返回列表 发帖
分享到:




[应用&技术] 分享下Excel中实现隔行删除技巧

Excel中实现隔行删除 0 Z" d2 i5 B9 |* k

- i; Y! o" C8 @: L$ [/ T选一个空列做辅助列   ' ]9 j- L" u9 z0 T' g7 q* ?& Q: A
  假设是F列   
) x/ q" a' i5 h, e. V  在F1里填上   : u1 E' Q3 {4 s+ x
  =MOD(ROW(F1),   2)   / t3 o; y* c$ s/ q
  然后复制到本列其它单元格中   
) A) I: q* m  g( e: O7 T  打开自动筛选   
* S: V2 r9 c8 w3 W: u- v8 l  l; n  选中0或1   / E" D7 l; N! V) a4 |, ^
  然后全选   删除   6 i! s9 }3 O: z6 w6 M& i( M
  就搞定了   
5 Y; A0 F( u( k5 m5 k$ F% j- Z6 Z3 p0 `" z
选的时候要选中整行   5 q! V! g$ B, a  c! ]' q8 M/ ^4 z; p
  我试过的   
9 t  D( }4 ?) ?% R6 D8 l: r  完全可以     s6 y) k5 E5 G1 I2 J) X) ^, o
   
, J9 K+ K9 i7 {2 {& z9 W  这个方法只能说是半自动的,对付几百行还能将就   
' G7 o1 K% |. ]" I$ R  如果真的有上万行,还是做个宏好一些   
: N3 |6 C7 J7 V" Q+ T  而且也很简单   
6 u( V1 u$ P* h  Q, [  Sub   RowsDelete(Odd   As   Long)   0 L1 v5 g6 {9 L, \' [
          Dim   nRows   As   Long   # @: U8 E* q$ ^* K. [: w
          Dim   i   As   Long   - I: l- e3 j2 X# r2 J
          With   Worksheets("sheet1")   
# a2 L; B; e7 {3 c; ?) l                  nRows   =   .UsedRange.Rows.Count   
2 b" J' P* n( G# @                  For   i   =   nRows   To   2   Step   -1   
1 a! k# _8 f  F7 y+ Z$ M                          If   i   Mod   2   =   Odd   Then   , k8 K1 A" t- H& l- t+ f
                                  .Rows(i).Delete   
' m9 i' E- g3 x' T                          End   If   
) `1 a8 L4 j/ q1 M6 i                  Next   
/ A# {, \, \/ Q/ n" ~          End   With   . x- C# i3 x5 M7 Z* E
  End   Sub   
9 x+ z% K6 X) ^    Odd为0时删除偶数行   为1时删除奇数行   
& S! y( K  L; _1 o5 _$ y  
/ X0 B  V6 e! F这种东西为什么要用VBA或者宏?   + ~# ?3 D. \0 f" q
   
+ I: s6 I; L; ^( C+ L  只需要加一个辅助列即可:   
9 t: `& ~7 J6 x3 c& W: ^, t    * |% |$ A; m. z9 l; C
  在某列输入公式:   =MOD(ROW(),2)           
  P3 ?0 m; q4 S+ w* [5 S; z  然后把公式复制到相应的数据区域即可.   
* Y0 w+ G  d+ t% c+ N    , s7 z& R- H) d  j' \
  如果您希望删除奇数列,那么使用筛选,选取辅助列值为1,然后选中这些行,删除即可.   . X, ]: V8 ~1 S3 g1 q  ~- B
  如果您希望删除偶数列,那么选取辅助列值为0,然后选中筛选出来的行,删除即可.   . a! H: Q/ `$ t( _9 [0 B2 k- U
   
: R. R" O8 P/ F; s  然后选中辅助列,进行排序,这样中间就不会出现空行了。最后删除辅助列   
; L. Z* f2 ]7 \: k' g, v   
: \8 W% O4 C/ i1 J9 N4 w  远比使用VBA来的快捷.另外:行数即使真的几万行一样可行.# u; }+ N- r  D1 Q3 j2 M
如果是几万行   复制一次公式也挺烦的   
3 p8 N0 n' k2 t) [  {5 w  不如VBA来得方便   
% t8 R: l" \1 V& A7 F   
  W* ?5 p3 K% D6 y  楼主可以打开你的Excel文件   % ~# G) t3 J; U4 T, Z4 O
  按   Alt+F11   打开VBA编辑器   $ b) Q" c; n6 Q( J( h
  在左边找到该文件的ThisWork   双击它   / Q, p2 b! O9 T: h" P
  然后把俺的代码复制到右边的代码区   
+ m" }, k) }9 |    6 `& W! e. A" i2 O7 Y5 {
  这段代码是处理名为sheet1的表单的   " O7 n0 ~6 B) U& ^2 Z7 B1 V8 m( X
  你要根据你的情况改一下   8 G, m  h# D1 x" P$ N7 I, E# ]
  把光标点到这段代码里   ( M& i) K% e5 o6 v* o
  然后按F5   * x$ x* o4 l8 e( K0 _6 z; D* p
   
6 j! l3 I: f3 x# F. {$ G  哗~~~~~~~~~~~~   
. `. i4 i$ `# ]2 u0 j+ K% Q  整个世界清静了   + r6 K8 `& X) c
5 e$ D& K$ L, {3 A& b+ f2 J2 g
选定你要***作的工作表
8 B! v* J1 Z% `; J4 S) V- n"工具"->"宏"->"VB编辑器" 3 B  i/ G( C7 w1 `, d% r8 W3 l
"插入"->"模块" * c/ N8 O7 \. K6 P7 ~2 w( J
复制下面的代码行,删除前面的引号,并修改其中注释的fristline和linecount后面的数字,然后按下"F5"运行即可 7 v& X5 J7 x% q
7 x4 ~/ _0 \- x& z2 Y
Sub Macro1() ' W6 H7 I; w: T( h" U* V
   
) _# `. h7 B$ b. _# G/ m/ C  fristline = 1                  '填需删除的第一行的行号 9 O( c$ X' `8 v7 r& F  h8 n
  linecount = 100                '填需删除的最后一行的行号
/ `% O, I, a7 `  fristdelete = Int((fristline + 1) / 2) * 2 8 ]$ A: a. r- x; L  v9 D; I# I
  str1 = fristdelete / ^4 G; P! m1 K9 G9 _5 i$ z
  For i = 1 To (linecount - fristdelete) / 2
9 [3 I# q. [( L3 {% l8 ^    str1 = str1 & "," & fristdelete + i * 2
( I! x9 l3 t" P, C8 W4 X# T  Next
2 l5 X9 V# c9 l2 `1 ?) m  Range(str1).Delete 7 f, G* n6 b) C1 D
End Sub

美国VPS、域名代购:http://tu8l.taobao.com

返回列表
Namecheap
Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting
互联网安全