Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: ebbe

[已解决]自定义了一个函数类似 Vlookup,但出现了问题

[复制链接]
 楼主| 发表于 2013-10-31 22:28 | 显示全部楼层
对,跨工作表查询,Vlookup就没有问题。我这个DTime就有问题了。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2013-10-31 22:31 | 显示全部楼层
增加“从未打开的工作薄取数”功能就可以了
回复

使用道具 举报

发表于 2013-11-1 11:28 | 显示全部楼层    本楼为最佳答案   
ebbe 发表于 2013-10-31 22:28
对,跨工作表查询,Vlookup就没有问题。我这个DTime就有问题了。

已解决

312400-VBA-自定义函数-不打开工作取数.rar (12.09 KB, 下载次数: 16)
回复

使用道具 举报

 楼主| 发表于 2013-11-1 19:51 | 显示全部楼层
本帖最后由 ebbe 于 2013-11-1 20:17 编辑
那么的帅 发表于 2013-11-1 11:28
已解决

太牛逼了,终于搞定了。非常感谢。但是原理不是很明白

我把代码贴出来吧。

Function DTime(查找值 As Range, 查找范围, 查找列数 As Integer, 返回列数 As Integer)
    On Error Resume Next
    add1 = 查找范围.Address
    If InStr(add1, "[") = 0 Then
        arr = 查找范围

        LastRow = UBound(arr)
        For i = 1 To LastRow
            If 查找值 = arr(i, 查找列数) Then
                result = arr(i, 返回列数)
                Exit For
            End If
        Next i
        DTime = result
    Else
        LastRow = UBound(查找范围)
        For i = 1 To LastRow
            If 查找值 = 查找范围(i, 查找列数) Then
                result = 查找范围(i, 返回列数)
                Exit For
            End If
        Next i
        DTime = result
    End If
End Function


为什么 add1 = 查找范围.Address
    If InStr(add1, "[") = 0 Then

一个用数组,另一个却不用数组就解决问题了呢?主要是红色部分不理解

回复

使用道具 举报

 楼主| 发表于 2013-11-1 20:18 | 显示全部楼层
我又修改了一下您的代码,试了一下,也能实现功能,如下:
Function DTime(查找值 As Range, 查找范围, 查找列数 As Integer, 返回列数 As Integer)
    On Error Resume Next
        Arr = 查找范围
        LastRow = UBound(Arr)
        For i = 1 To LastRow
            If 查找值 = Arr(i, 查找列数) Then
                result = Arr(i, 返回列数)
                Exit For
            End If
        Next i
        DTime = result
End Function
回复

使用道具 举报

发表于 2013-11-1 21:28 | 显示全部楼层
ebbe 发表于 2013-11-1 19:51
太牛逼了,终于搞定了。非常感谢。但是原理不是很明白

我把代码贴出来吧。

打开时,查找范围得到的是 单元格区域
不打开时,查找范围得到的是数组
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 12:56 , Processed in 0.275329 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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