Excel精英培训网

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

[已解决]请论坛老师帮忙写段代码

[复制链接]
发表于 2012-11-7 20:54 | 显示全部楼层 |阅读模式
录制了一段宏,现在要加个条件,不会写代码了,就是:
工作薄"成绩"里的工作表"7年1班"的A5,与工作薄"排榜"里的工作表"名次"的C2不同时,则退出。
请论坛老师帮忙写段代码,谢谢。
最佳答案
2012-11-7 22:09
本帖最后由 hwc2ycy 于 2012-11-7 22:11 编辑
  1.     Dim wbCj As Workbook
  2.     Dim wbPb As Workbook
  3.     Dim rga5, rgc2
  4.     On Error Resume Next
  5.     Set wbCj = Workbooks("成绩.xls")
  6.     Set wbPb = workbooks("排榜.xls")
  7.     If wbCj Is Nothing Or wbPb Is Nothing Then
  8.         MsgBox "指定工作簿未打开"
  9.         Exit Sub
  10.     End If
  11.     With wbCj.Worksheets("7年1班")
  12.         rga5 = .Range("a5").Value
  13.     End With
  14.     With wbPb.Worksheets("名次")
  15.         rgc2 = .Range("c2").Value
  16.     End With
  17.     If rga5 <> rgc2 Then Exit Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-11-7 21:19 | 显示全部楼层
  1.     Dim wbCj As Workbook
  2.     Dim wbPb As Workbook
  3.     Dim rga5, rgc2
  4.     On Error Resume Next
  5.     Set wbCj = Workbook("成绩")
  6.     Set wbPb = worksook("排榜")
  7.     If wbCj Is Nothing Or wbPb Is Nothing Then
  8.         MsgBox "指定工作簿未打开"
  9.         Exit Sub
  10.     End If
  11.     With wbCj.Worksheets("7年1班")
  12.         rga5 = .Range("a5").Value
  13.     End With
  14.     With wbPb.Worksheets("名次")
  15.         rgc2 = .Range("c2").Value
  16.     End With
  17.     If rga5 <> rgc2 Then Exit Sub
复制代码
回复

使用道具 举报

发表于 2012-11-7 21:30 | 显示全部楼层
你直接上个附件说明问题和结果,就很好解决了呀
回复

使用道具 举报

 楼主| 发表于 2012-11-7 22:02 | 显示全部楼层
本帖最后由 yslvictor 于 2012-11-8 08:07 编辑


回复

使用道具 举报

发表于 2012-11-7 22:09 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hwc2ycy 于 2012-11-7 22:11 编辑
  1.     Dim wbCj As Workbook
  2.     Dim wbPb As Workbook
  3.     Dim rga5, rgc2
  4.     On Error Resume Next
  5.     Set wbCj = Workbooks("成绩.xls")
  6.     Set wbPb = workbooks("排榜.xls")
  7.     If wbCj Is Nothing Or wbPb Is Nothing Then
  8.         MsgBox "指定工作簿未打开"
  9.         Exit Sub
  10.     End If
  11.     With wbCj.Worksheets("7年1班")
  12.         rga5 = .Range("a5").Value
  13.     End With
  14.     With wbPb.Worksheets("名次")
  15.         rgc2 = .Range("c2").Value
  16.     End With
  17.     If rga5 <> rgc2 Then Exit Sub
复制代码
回复

使用道具 举报

发表于 2012-11-7 22:12 | 显示全部楼层
  1. Sub test()
  2.     Dim wbCj As Workbook
  3.     Dim wbPb As Workbook
  4.     Dim rga5, rgc2
  5.     On Error Resume Next
  6.     Set wbCj = Workbooks("成绩.xls")
  7.     Set wbPb = Workbooks("排榜.xls")
  8.     If wbCj Is Nothing Or wbPb Is Nothing Then
  9.         MsgBox "指定工作簿未打开"
  10.         Exit Sub
  11.     End If
  12.     With wbCj.Worksheets("7年1班")
  13.         rga5 = .Range("a5").Value
  14.     End With
  15.     With wbPb.Worksheets("名次")
  16.         rgc2 = .Range("c2").Value
  17.     End With
  18.     If rga5 <> rgc2 Then Exit Sub
  19.     MsgBox "运行完成"
  20. End Sub
复制代码
之前是只看你的要求写的,没有验证,workbooks写错了。
这个刚测试了,如果能提示“运行完在",就证明A5,C2是相等的。
回复

使用道具 举报

 楼主| 发表于 2012-11-8 13:35 | 显示全部楼层
解决了。谢谢hwc2ycy论坛老师!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 10:36 , Processed in 0.400876 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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