Excel精英培训网

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

set的使用(代码无法运行)

[复制链接]
发表于 2013-4-17 16:54 | 显示全部楼层 |阅读模式
A段代码和B段代码效果应该是一样的,B段代码是能运行的版本,只是嫌B段代码中下面的部分太繁琐,经过多方查找资料,将A段代码改成了B段代码,A段代码能运行,但是出来的结果似乎和乱码没什么区别!我不知道哪里出问题了,请各位帮我讲解讲解!感激不尽!(代码在附件中运行)

Dim a As Date, m As Integer, n As Integer, o As Integer, p As Integer, q As Integer


a = "2013-3-10 00:00"


m = Year(dd)

n = Month(dd)

o = Day(dd)

p = Hour(dd)

q = Minute(dd)


另外A段代码中,SET如果换成LET就无法运行了,找不到是什么原因。我感觉A段代码运行的结果很乱有可能是因为SET的用法弄不懂,不知道是哪里出问题了。

  1. Sub 代码A()
  2. Dim Rng As Range
  3. Dim Sh As Worksheet

  4. For x = 3 To Worksheets.Count
  5. With Sheets(x)
  6. <FONT color=red>For Each Sh In Worksheets
  7. Set Rng = Sh.Range("A:A").Find("2013年3月", , xlValues, 1)
  8. If Not Rng Is Nothing Then
  9. </FONT>.Rows(Rng.Row).Font.Color = vbBlack
  10. .Rows(Rng.Row + 1 & ":" & Rng.Row + 9).EntireRow.Hidden = True
  11. End If
  12. Next
  13. .Columns("B:C").EntireColumn.Hidden = True
  14. End With
  15. Next
  16. End Sub

复制代码
  1. Sub 代码B()
  2. Dim Rng As Range
  3. Dim a As Date, m As Integer, n As Integer, o As Integer, p As Integer, q As Integer

  4. a = "2013-3-10 00:00"

  5. m = Year(dd)
  6. n = Month(dd)
  7. o = Day(dd)
  8. p = Hour(dd)
  9. q = Minute(dd)

  10. For x = 3 To Sheets.Count
  11. With Sheets(x)
  12. <FONT color=red>For Each Rng In .Range("a:a")
  13. If Rng = a Then
  14. </FONT>.Rows(Rng.Row).Font.Color = vbBlack
  15. .Rows(Rng.Row + 1 & ":" & Rng.Row + 9).EntireRow.Hidden = True
  16. End If
  17. Next
  18. .Columns("B:C").EntireColumn.Hidden = True
  19. End With
  20. Next
  21. End Sub
复制代码

矿井瓦斯抽采钻场组抽采情况综合分析表(更新至2013.3).zip

137.06 KB, 下载次数: 1

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-4-17 17:03 | 显示全部楼层
SET是将对象引用赋给变量或属性的。
回复

使用道具 举报

 楼主| 发表于 2013-4-17 17:22 | 显示全部楼层
  1. Sub 隐藏行和列和改变颜色()
  2. Dim Rng As Range
  3. Dim Sh As Worksheet

  4.     For x = 3 To Worksheets.Count
  5.         With Sheets(x).Range("A:A")
  6.             For Each Sh In Worksheets
  7.     Set Rng = .Find("2013年3月", , xlValues, 1)

  8.                If Not Rng Is Nothing Then
  9.             .Rows(Rng.Row).Font.Color = vbBlack
  10.             .Rows(Rng.Row + 1 & ":" & Rng.Row + 9).EntireRow.Hidden = True
  11.                 End If
  12.             Next
  13.             .Columns("B:C").EntireColumn.Hidden = True
  14.         End With
  15.     Next
  16. End Sub

复制代码
将代码改成这样就行了,FIND前面的东西删掉就行了,这是怎么回事????????????
回复

使用道具 举报

发表于 2013-4-17 17:41 | 显示全部楼层
看看参数说明,多测试两次。
回复

使用道具 举报

发表于 2013-4-17 19:04 | 显示全部楼层
set 是给对象赋值,且对象就是用set 赋值,没有给对象赋值,当然就出错了。
回复

使用道具 举报

 楼主| 发表于 2013-4-19 11:10 | 显示全部楼层
fjmxwrs 发表于 2013-4-17 19:04
set 是给对象赋值,且对象就是用set 赋值,没有给对象赋值,当然就出错了。

帅哥讲讲怎么给对象赋值呢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 06:45 , Processed in 0.642440 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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