Excel精英培训网

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

[已解决]【怎么写】寻找A列至L列中最远的非空单元格的行号

[复制链接]
发表于 2015-12-17 12:43 | 显示全部楼层 |阅读模式
本帖最后由 shwanghuafeng 于 2015-12-19 11:25 编辑

比如A列最后一个数据是A20,B列是B565,...,L列是L357,那么每列相比,最后一行的最大值是565
我想得到这个565作为另一个变量的值,应该怎么写
dim i,n
for i=A to L
   if n>()  then
       n=()
   end if
next i
...
这样直接用列名定义i的范围好像会出错?括号内应该怎么填(能否用end(3),能的话怎么写)?
最佳答案
2015-12-18 16:50
(, 下载次数: 100)
发表于 2015-12-17 12:49 | 显示全部楼层
  1. dim arr,i
  2. arr=[a1].currentregion
  3. for i=1 to ubound(arr)
  4.     if ... then
  5.      ...
  6.     end if
  7. next
  8. 'ubound(arr)即是你要的最大行号
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-12-17 13:51 | 显示全部楼层
sry660 发表于 2015-12-17 12:49

谢谢大大,我尝试了一下
public sub Qst()
  dim arr
  arr=Sheet3.Range("a1").CurrentRegion
  msgbox ubound(arr)
end sub

像这样写可以运行,但如果改用function
public function Qst(a)
  dim arr
  arr=Sheet3.Range("a1").CurrentRegion
  Qst=ubound(arr)
end function

这样就不行,为什么呢?应该怎么改?
回复

使用道具 举报

发表于 2015-12-17 15:47 | 显示全部楼层
msgbox Range("A:L").Find("*", , , , , xlPrevious).Row
回复

使用道具 举报

 楼主| 发表于 2015-12-17 20:51 | 显示全部楼层
青城山苦丁茶 发表于 2015-12-17 15:47
msgbox Range("A:L").Find("*", , , , , xlPrevious).Row

谢谢,大神帮我解决好几个问题啦,能不能再麻烦大神看一下3楼的问题?
回复

使用道具 举报

发表于 2015-12-18 09:14 | 显示全部楼层
shwanghuafeng 发表于 2015-12-17 20:51
谢谢,大神帮我解决好几个问题啦,能不能再麻烦大神看一下3楼的问题?

没问题呀,如果Sheet3存在的话
回复

使用道具 举报

发表于 2015-12-18 09:46 | 显示全部楼层
shwanghuafeng 发表于 2015-12-17 13:51
谢谢大大,我尝试了一下
public sub Qst()
  dim arr

public function Qst(a)

这个函数里的参数A 在过程里并没有用到,所以参数就是个忽悠,,

随便给一个值都能运行这个函数,只不过参数没参与而已
回复

使用道具 举报

 楼主| 发表于 2015-12-18 13:17 | 显示全部楼层
本帖最后由 shwanghuafeng 于 2015-12-18 13:20 编辑
青城山苦丁茶 发表于 2015-12-18 09:14
没问题呀,如果Sheet3存在的话

请看附件,一共就这俩过程,一个sub一个function,sub行但是function会显示错误
表格是新建的,所有设定都没有修改过

D7单元格.zip

11.41 KB, 下载次数: 9

回复

使用道具 举报

 楼主| 发表于 2015-12-18 13:18 | 显示全部楼层
know 发表于 2015-12-18 09:46
public function Qst(a)

这个函数里的参数A 在过程里并没有用到,所以参数就是个忽悠,,

我知道呀,这个a在后面才会用到,反正也不影响嘛,请看8L哦~
回复

使用道具 举报

发表于 2015-12-18 14:41 | 显示全部楼层
shwanghuafeng 发表于 2015-12-18 13:17
请看附件,一共就这俩过程,一个sub一个function,sub行但是function会显示错误
表格是新建的,所有设定 ...

Public Function Qst()
    Dim ar
    ar = Sheet1.Range("a1").CurrentRegion
    Qst = UBound(arr)
End Function



数组名称错误,多了个r
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 23:21 , Processed in 0.746540 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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