Excel精英培训网

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

[已解决]用VBA实现VLOOKUP功能

[复制链接]
发表于 2016-6-5 10:15 | 显示全部楼层 |阅读模式
Range("M7:M11") = Application.WorksheetFunction.SumIf(Range("F8:F23"), Range("L7:L11"), Range("G8:G23"))

    这个对么?   我用的是WPS  APPLICATION用不用写上? 请指教 谢谢!
最佳答案
2016-6-5 10:29
Sub test()
    Range("m7:m11").FormulaArray = "=SumIf(F8:F23,L7:L11,G8:G23)"
End Sub


最好上传wps附件,别人才好测试。
没测试,这样行不行

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-6-5 10:29 | 显示全部楼层    本楼为最佳答案   
Sub test()
    Range("m7:m11").FormulaArray = "=SumIf(F8:F23,L7:L11,G8:G23)"
End Sub


最好上传wps附件,别人才好测试。
没测试,这样行不行

回复

使用道具 举报

 楼主| 发表于 2016-6-5 10:32 | 显示全部楼层
爱疯 发表于 2016-6-5 10:29
Sub test()
    Range("m7:m11").FormulaArray = "=SumIf(F8:F23,L7:L11,G8:G23)"
End Sub

     好用,,你能把这个公式 解释一下么?

FormulaArray   是什么意思?  如果我用VBA实现其他函数公式的时候  也用这个么?
回复

使用道具 举报

发表于 2016-6-5 10:34 | 显示全部楼层
yaopengfei 发表于 2016-6-5 10:32
好用,,你能把这个公式 解释一下么?

FormulaArray   是什么意思?  如果我用VBA实现其他函数公 ...

Excel 2010 开发人员参考 > Excel 对象模型参考 > Range 对象 > 属性
Excel 开发人员参考
Range.FormulaArray 属性

返回或设置区域的数组公式。返回(或可设置为)单个公式或 Visual Basic 数组。如果指定区域不包含数组公式,则该属性返回 nullVariant 类型,可读写。语法
表达式.FormulaArray
表达式   一个代表 Range 对象的变量。
说明

如果用本属性输入数组公式,那么该公式必须使用 R1C1 引用样式,而不能使用 A1 引用样式(请参阅第二个示例)。
The FormulaArray property also has a character limit of 255.

示例

本示例在 Sheet1 上的单元格区域 A1:C5 中输入数组常量 3。
Visual Basic for Applications
Worksheets("Sheet1").Range("A1:C5").FormulaArray = "=3"

本示例在 sheet1 上的单元格区域 E1:E3 中输入数组公式“=SUM(R1C1:R3C3)”。
Visual Basic for Applications
Worksheets("Sheet1").Range("E1:E3").FormulaArray = _    "=Sum(R1C1:R3C3)"




回复

使用道具 举报

发表于 2016-6-5 10:36 | 显示全部楼层
4楼是对应的帮助。可看作:

目标单元格区域.FormulaArray属性="=你的数组公式"
回复

使用道具 举报

 楼主| 发表于 2016-6-5 10:42 | 显示全部楼层
爱疯 发表于 2016-6-5 10:36
4楼是对应的帮助。可看作:

目标单元格区域.FormulaArray属性="=你的数组公式"

如果我用的不是数组公式,,,就是一般的函数公式呢 ?

“FormulaArray”   换成什么啊?   
回复

使用道具 举报

发表于 2016-6-5 10:59 | 显示全部楼层
yaopengfei 发表于 2016-6-5 10:42
如果我用的不是数组公式,,,就是一般的函数公式呢 ?

“FormulaArray”   换成什么啊?

以下两种方式都可以:


目标单元格区域.Formula="=你的公式"
目标单元格区域="=你的公式"

回复

使用道具 举报

 楼主| 发表于 2016-6-5 11:05 | 显示全部楼层
爱疯 发表于 2016-6-5 10:59
以下两种方式都可以:

Range("m7:m11").FormulaArray = "=vlookup(range("L7:L11"),range("f8:g23"),2,0)"  

   我这个错在哪了?


回复

使用道具 举报

发表于 2016-6-5 11:20 | 显示全部楼层
yaopengfei 发表于 2016-6-5 11:05
Range("m7:m11").FormulaArray = "=vlookup(range("L7:L11"),range("f8:g23"),2,0)"  

   我这个错在哪 ...

目标单元格区域.Formula属性="=你的公式"

目标单元格区域="=你的公式"



颜色部分和工作表函数,要是一模一样的。
回复

使用道具 举报

发表于 2016-6-5 17:19 | 显示全部楼层
长知识了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 05:26 , Processed in 0.431356 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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