Excel精英培训网

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

[已解决]工作表的非空行号变了?

[复制链接]
发表于 2012-4-11 20:36 | 显示全部楼层 |阅读模式
我在工作薄:2012年4月份金工车间工时.xls中写了代码,把含有批注的单元格复制到另一工作薄:清砂.xls 中时,为什么清砂工作薄中非空单元格的行号是61,那么第一个空单元格的行号是62,为什么运行代码时,跑到171号去了呢?详见附件
工作薄.zip (55.24 KB, 下载次数: 13)
发表于 2012-4-11 20:59 | 显示全部楼层

  1. Sub AA()
  2.     Dim RG As Range, M%, ARR()
  3.     Dim wb As Workbook
  4.     For Each RG In Range(Cells([a65536].End(3).Row, "D"), Cells(Rows.Count, "e").End(3))
  5.         If Not RG.Comment Is Nothing Then
  6.             M = M + 1
  7.             ReDim Preserve ARR(1 To 3, 1 To M)
  8.             ARR(1, M) = RG.Value
  9.             If RG.Column = 4 Then
  10.                 ARR(2, M) = RG.Offset(, 2).Value
  11.                 ARR(3, M) = RG.Offset(, 6).Value
  12.             Else
  13.                 ARR(2, M) = RG.Offset(, 1).Value
  14.                 ARR(3, M) = RG.Offset(, 5).Value
  15.             End If
  16.         End If
  17.     Next RG
  18.     Set wb = Workbooks.Open(ThisWorkbook.Path & "/清砂.xls")
  19.     With wb.Sheets(1)
  20.         .Range("b" & .[b65536].End(3).Row + 1).Resize(UBound(ARR, 2), UBound(ARR)) = Application.WorksheetFunction.Transpose(ARR)
  21.     End With
  22.     wb.Close True
  23.     Set wb = Nothing
  24. End Sub
复制代码
回复

使用道具 举报

发表于 2012-4-11 21:08 | 显示全部楼层    本楼为最佳答案   
找错了对象!补上红色语句。
ActiveWorkbook.Sheets(1).Range("b" & ActiveWorkbook.Sheets(1).[b65536].End(3).Row + 1).Resize(UBound(ARR, 2), UBound(ARR)) = Application.WorksheetFunction.Transpose(ARR)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 10:45 , Processed in 0.647841 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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