Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4232|回复: 26

[已解决]代码是哪里出了问题

[复制链接]
发表于 2013-1-14 10:37 | 显示全部楼层 |阅读模式
我通过录制宏,并在此基础上修改代码的方法做了一个小程序,代码运行时没有什么问题,但每次打开文件都会出现以下提示,貌似有关排序的代码有问题,而且这个 代码还影响我在表中设定的条件格式,使C列无法正常显示条件格。但因为我的VBA实在太菜,不知道如何修改,请各位老师帮忙看看修改一下。非常感谢。 求助.zip (151.43 KB, 下载次数: 10)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-1-14 13:44 | 显示全部楼层
你试试修复保存后看还会不会出这个提示。

回复

使用道具 举报

发表于 2013-1-14 13:47 | 显示全部楼层
求助2.rar (150.07 KB, 下载次数: 7)
回复

使用道具 举报

发表于 2013-1-14 13:47 | 显示全部楼层
QQ截图20130114134531.jpg
回复

使用道具 举报

 楼主| 发表于 2013-1-14 16:48 | 显示全部楼层
hwc2ycy 发表于 2013-1-14 13:47

你好,我重新保存修复了的文件,只要运行过程序,下次再打开文件,还是会出现同样的提示。
回复

使用道具 举报

 楼主| 发表于 2013-1-14 16:49 | 显示全部楼层
hwc2ycy 发表于 2013-1-14 13:47

不好意思,这个截图我没有看明白是什么意思。
回复

使用道具 举报

发表于 2013-1-14 17:39 | 显示全部楼层
gylilan 发表于 2013-1-14 16:48
你好,我重新保存修复了的文件,只要运行过程序,下次再打开文件,还是会出现同样的提示。

之前保存的没有运行宏。
应该是宏代码运行后导致的。
回复

使用道具 举报

发表于 2013-1-14 19:05 | 显示全部楼层
  1. Sub 筛选()
  2. '
  3. ' 筛选 宏
  4. '
  5.     Application.ScreenUpdating = False
  6.     '
  7.     With Range("A6:I" & [a65536].End(xlUp).Row)
  8.         .Value = ""
  9.         .Borders.LineStyle = xlNone    '清除单元格边框线
  10.     End With

  11.     '先对总表以 月字段,升序进行排序,
  12.     With Worksheets("总表")
  13.         Dim iRow&
  14.         iRow = .[a65536].End(xlUp).Row
  15.         .Range("a1:i" & iRow).Sort _
  16.                 Key1:=.Range("c2:c" & iRow), Order1:=1, Header:=xlYes

  17.         '高级筛选
  18.         .Range("A1:I" & iRow).AdvancedFilter Action:=xlFilterCopy, _
  19.                                              CriteriaRange:=Range("K1:K2"), CopyToRange:=Range("A5:I5")
  20.     End With

  21.     iRow = [a65536].End(xlUp).Row
  22.     Range("a5:i" & iRow).Sort Key1:=Range("c6:i" & iRow), Order1:=xlAscending, _
  23.                               key2:=Range("a6:a" & iRow), order2:=xlAscending, Header:=xlYes, SortMethod:=xlPinYin

  24.     With Range("C6")
  25.         .Value = ""
  26.         .Subtotal GroupBy:=3, Function:=xlSum, TotalList:=Array(7, 8), _
  27.                   Replace:=True, PageBreaks:=False, SummaryBelowData:=True
  28.         .ClearOutline
  29.     End With

  30.     Dim i As Integer
  31.     iRow = [h65536].End(xlUp).Row
  32.     For i = iRow To 5 Step -1
  33.         'For i = [h65536].End(xlUp).Row To 5 Step -1
  34.         If Cells(i, 3) = "总计" Then Rows(i).Delete
  35.         If Cells(i, 3) Like "*汇总" Then Cells(i, 6) = "本期合计"
  36.         If Cells(i, 3) Like "*汇总" Then Cells(i, 3).Value = ""
  37.         If Cells(i, 6) = "本期合计" Then
  38.             Rows(i + 1).Insert
  39.             Cells(i + 1, 6) = "期初余额"
  40.         End If

  41.     Next i

  42.     '正常位置
  43.     iRow = [f65536].End(xlUp).Row
  44.     Range("F" & iRow).Delete    '删除最后一行数据

  45.     Range("I7").FormulaR1C1 = "=IF(RC[-8]="""",R[-1]C,R[-1]C+RC[-2]-RC[-1])"    '输入余额栏公式
  46.     Range("I7").AutoFill Destination:=Range("I7:I" & iRow - 1), Type:=xlFillDefault
  47.     Range("g6:I" & iRow - 1).NumberFormatLocal = "0.00_ ;[红色]-0.00 "  '设置格式为两位小数

  48.     With Range("F6:I" & iRow - 1)  '.Select '设置摘要栏为自动缩小字体适应单元格
  49.         .VerticalAlignment = xlCenter
  50.         .ReadingOrder = xlContext
  51.     End With

  52.     With Columns("A:E")    '.Select 'A到E列的内容居中
  53.         .HorizontalAlignment = xlCenter
  54.         .VerticalAlignment = xlCenter
  55.         .ReadingOrder = xlContext
  56.     End With
  57.     Columns("E:E").NumberFormatLocal = "0000"    '设置E列格式

  58.     With Range("A5:I" & [I65536].End(xlUp).Row)  '加边框线
  59.         With .Borders
  60.             .LineStyle = xlContinuous
  61.             .Weight = xlThin
  62.         End With
  63.     End With

  64.     With Range("B3")    '设置B3和I3单元格格式
  65.         .HorizontalAlignment = xlLeft
  66.         .VerticalAlignment = xlCenter
  67.         .ReadingOrder = xlContext
  68.     End With

  69.     With Range("I3")
  70.         .HorizontalAlignment = xlRight
  71.         .VerticalAlignment = xlCenter
  72.         .ReadingOrder = xlContext
  73.     End With

  74.     Application.ScreenUpdating = True
  75.     ActiveSheet.PageSetup.PrintArea = "A1:I" & iRow - 1  '设置打印区域
  76. End Sub
复制代码
重新整理了下,当是学下SORT
回复

使用道具 举报

发表于 2013-1-14 19:05 | 显示全部楼层
存盘后再运行宏,不会报错了。
回复

使用道具 举报

 楼主| 发表于 2013-1-14 19:06 | 显示全部楼层
hwc2ycy 发表于 2013-1-14 17:39
之前保存的没有运行宏。
应该是宏代码运行后导致的。

那应该是宏代码有问题,请问能通过修改代码解决这个问题吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 11:28 , Processed in 0.399781 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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