设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3638|回复: 6
打印 上一主题 下一主题

帮忙转换为自定义函数

[复制链接]
跳转到指定楼层
1#
发表于 2005-1-4 18:49:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
拜读了老鬼版主的行转列组合公式后,

=INDEX($A$1D$5,1+INT((ROW()-1)/4),MOD((ROW()-1),4)+1)

深感兴趣,但发觉这个公式有几不足的地方

1.对于进行转列的区域不能任意选择同,否则结果不正确

2.对于输出结的第一个单元格只能是任意一列的第一个单元格,而无法在任意一列的任意一行中输入公式,否则结果不全。

为此我对公式作了修改

=INDEX($A$1E$5,1+INT((ROW()-ROW($B$6))/COLUMNS($A$1E$5)),MOD((ROW()-1),COLUMNS($A$1:$E$5))+1)

但这个组合公式在指定开始输出单的上方和起出进行转换区域的总行数时会出现错误

于再进行修改,加入条件判断,使出现错误的地方的单无格变为空白单元格。

=IF(OR((ROW()-ROW($B$6))<0,(1+INT((ROW()-ROW($B$6))/COLUMNS($A$1:$E$5)))>COLUMNS($A$1:$E$5)),"",INDEX($A$1:$E$5,1+INT((ROW()-ROW($B$6))/COLUMNS($A$1:$E$5)),MOD((ROW()-ROW($B$6)),COLUMNS($A$1:$E$5))+1))

但这个公式太复杂,想转换为自定义函数,小弟想了很久都无法解决,在此恳请各位版主和高手们帮忙解决。





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-1-4 21:02:00 | 只看该作者
VBA方法:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2005-1-5 00:53:00 | 只看该作者
又上了宝贵的一课,谢谢!但还有2点不明白,1、下面代码中i是如何付值的?2、For Each cel In Range(RefEdit1.Value)返回什么结果?版主能否解释一下^-^i = 0

For Each cel In Range(RefEdit1.Value)

    ActiveCell.Offset(i, 0).Value = cel.Value

    i = i + 1

Next[em04][em04]
4#
发表于 2005-1-5 01:56:00 | 只看该作者
i = 0

For Each cel In Range(RefEdit1.Value) '返回RANGE对象的单元格实例,并开始循环

    ActiveCell.Offset(i, 0).Value = cel.Value

    i = i + 1 '每循环一次对i累加一次

Next
5#
 楼主| 发表于 2005-1-5 03:03:00 | 只看该作者
谢谢!在这里还想问一问题:假如我要想要一个函数公式,公式有两个变量,一个是要进行转换的区域,一个是转换后输出的第一个单元格(这两个变量在引用时要变为绝对引用),将所得的引用代入以下公式中计算=IF(OR((ROW()-ROW($B$6))<0,(1+INT((ROW()-ROW($B$6))/COLUMNS($A$1E$5)))>COLUMNS($A$1E$5)),"",INDEX($A$1E$5,1+INT((ROW()-ROW($B$6))/COLUMNS($A$1:$E$5)),MOD((ROW()-ROW($B$6)),COLUMNS($A$1:$E$5))+1))

在单元格中输入公式后得出结果(这个结果只是要转换区域的一个单元格值),这个自定义函数该如何写?我昨天按这个思路做了很长时间都无法解决,还望版主指导。
6#
发表于 2005-1-5 06:11:00 | 只看该作者
自定义函数为tr(),有两种使用方法,一种是数组公式法(J列),另一种是普通公式法(K列):

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
7#
发表于 2005-1-29 18:53:00 | 只看该作者
没想到VBA里面东东真多!!!!得好好学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 20:05 , Processed in 0.089853 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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