VBA编程中求某列的最大值的函数

是MAX(g:g)吗,好象不行... 是MAX(g:g)吗,好象不行 展开
 我来答
1h3s1w4
高粉答主

2019-09-20 · 喜欢看电影,爱剪辑影视片段
1h3s1w4
采纳数:5 获赞数:14779

向TA提问 私信TA
展开全部

VBA内置函数中没有求最大值的函数,但可以利用excel中表格可以用max函数,在VBA中也可以用,只需通过WorksheetFunction对象就可以引用,后面加函数名称,然后加range来引用单元格。举个例子:

Application.WorksheetFunction.Max(range("A1:C5"))

从 Visual Basic 中调用工作表函数:

在 Visual Basic 中,通过 WorksheetFunction 对象可使用 Microsoft Excel 工作表函数。

扩展资料:

过程与函数

Sub 过程名(参数表)    语句块    Exit Sub    语句块End Sub 

Function 函数名(参数表) As Type   语句块   函数名=表达式   Exit FunctionEnd Function

可以是Private、Public、Friend、Static等修饰。

调用函数/过程时,可以加括号或者不加括号。如果调用表达式作为一行的一部分,那么必须用参数,例如函数调用的返回值赋给变量。 

调用过程时, 可以使用/不使用call关键字。使用call语句调用过程,如果无参数,则不加括号;如果有参数,必须加括号。

如果调用时用括号包住单个参数,则该参数强行按值传递。需要特别注意,不用call不加括号的调用,形参与实参是传值(passed by value)而不是传引用(passed by reference),这会导致一些对象的方法调用失败。

参考资料来源:百度百科-VBA (Visual Basic宏语言)

noky
2006-01-17 · TA获得超过1504个赞
知道小有建树答主
回答量:716
采纳率:0%
帮助的人:608万
展开全部
楼上两位:VBA内置函数中没有求最大值的函数,所以你们的命令肯定不能运行,程序会报错。不过我们可以曲线救国,excel中表格可以用max函数,在VBA中也可以用,只需通过WorksheetFunction对象就可以引用,后面加函数名称,然后加range来引用单元格。举个例子:
Application.WorksheetFunction.Max(range("A1:C5"))

下面就是如何在VBA中使用excel自带函数的文章。说简单其实很简单,根据我的经历,仔细阅读一下非常非常有好处,以后能省大力气,因为这个绝对会经常用到。如果嫌罗嗦,直接看看例子就明白怎么用了。但强烈建议你收藏起来以后阅读。

在 Visual Basic 语句中可以使用大多数 Microsoft Excel 工作表函数。若要查看可以使用的工作表函数列表,请参阅 Visual Basic 可使用的工作表函数列表。

注意 一些工作表函数在 Visual Basic 中是不实用的。例如:Concatenate 函数就不实用,因为在 Visual Basic 中可使用 & 运算符来连接多个文本值。

从 Visual Basic 中调用工作表函数
在 Visual Basic 中,通过 WorksheetFunction 对象可使用 Microsoft Excel 工作表函数。

以下 Sub 过程使用 Min 工作表函数来决定在某个单元格区域中的最小值。首先,将变量 myRange 声明为 Range 对象,然后将其设置为 Sheet1 上的 A1:C10 单元格区域。指定另一个变量 answer 为对 myRange 应用 Min 函数的结果。最后,answer 的值就被显示在消息框中。

Sub UseFunction()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:C10")
answer = Application.WorksheetFunction.Min(myRange)
MsgBox answer
End Sub
如果您使用的工作表函数需要一个单元格区域引用作为参数,则必须指定一个 Range 对象。例如:您可以用 Match 工作表函数搜索单元格区域。可以在工作表单元格中输入公式,如“=MATCH(9,A1:A10,0)”。但是,您应在 Visual Basic 过程中指定一个 Range 对象来获取相同的结果。

Sub FindFirst()
myVar = Application.WorksheetFunction _
.Match(9, Worksheets(1).Range("A1:A10"), 0)
MsgBox myVar
End Sub
注意 Visual Basic 函数不使用 WorksheetFunction 识别符。函数可能和 Microsoft Excel 的函数同名但作用各异。例如:Application.WorksheetFunction.Log 和 Log 将返回不同的值。

在单元格中插入工作表函数
若要在单元格中插入工作表函数,请指定函数作为相应的 Range 对象的 Formula 属性值。以下示例中,将 RAND 工作表函数(可生成随机数)赋给了活动工作簿中 Sheet1 上 A1:B3 单元格区域的 Formula 属性。

Sub InsertFormula()
Worksheets("Sheet1").Range("A1:B3").Formula = "=RAND()"
End Sub
示例
本示例使用工作表函数 Pmt 来计算住宅抵押贷款的支付额。请注意,本示例使用的是 InputBox 方法,而不是 InputBox 函数,因此该方法可以执行类型检查。Static 语句使 Visual Basic 保留三个变量的值;当下次运行该程序时,这些变量将显示为默认值。

Static loanAmt
Static loanInt
Static loanTerm
loanAmt = Application.InputBox _
(Prompt:="Loan amount (100,000 for example)", _
Default:=loanAmt, Type:=1)
loanInt = Application.InputBox _
(Prompt:="Annual interest rate (8.75 for example)", _
Default:=loanInt, Type:=1)
loanTerm = Application.InputBox _
(Prompt:="Term in years (30 for example)", _
Default:=loanTerm, Type:=1)
payment = Application.WorksheetFunction _
.Pmt(loanInt / 1200, loanTerm * 12, loanAmt)
MsgBox "Monthly payment is " & Format(payment, "Currency")

可用于 Visual Basic 的工作表函数列表

A_______________________________
Acos
Acosh
And
Asin
Asinh
Atan2
Atanh
AveDev
Average
B_______________________________
BetaDist
BetaInv
BinomDist
C_______________________________
Ceiling
ChiDist
ChiInv
ChiTest
Choose
Clean
Combin
Confidence
Correl
Cosh
Count
CountA
CountBlank
CountIf
Covar
CritBinom
D_______________________________
DAverage
Days360
Db
DCount
DCountA
Ddb
Degrees
DevSq
DGet
DMax
DMin
Dollar
DProduct
DStDev
DStDevP
DSum
DVar
DVarP
E_______________________________
Even
ExponDist
F_______________________________
Fact
FDist
Find
FindB
FInv
Fisher
FisherInv
Fixed
Floor
Forecast
Frequency
FTest
Fv
G_______________________________
GammaDist
GammaInv
GammaLn
GeoMean
Growth
H_______________________________
HarMean
HLookup
HypGeomDist
I_______________________________
<Index
Intercept
Ipmt
Irr
IsErr
IsError
IsLogical
IsNA
IsNonText
IsNumber
Ispmt
IsText
J_______________________________
K_______________________________
Kurt
L_______________________________
Large
LinEst
Ln
Log
Log10
LogEst
LogInv
LogNormDist
Lookup
M_______________________________
Match
Max
MDeterm
Median
Min
MInverse
MIrr
MMult
Mode
N_______________________________
NegBinomDist
NormDist
NormInv
NormSDist
NormSInv
NPer
Npv
O_______________________________
Odd
Or
P_______________________________
Pearson
Percentile
PercentRank
Permut
Phonetic
Pi
Pmt
Poisson
Power
Ppmt
Prob
Product
Proper
Pv
Q_______________________________
Quartile
R_______________________________
Radians
Rank
Rate
Replace
ReplaceB
Rept
Roman
Round
RoundDown
RoundUp
RSq
RTD
S_______________________________
Search
SearchB
Sinh
Skew
Sln
Slope
Small
Standardize
StDev
StDevP
StEyx
Substitute
Subtotal
Sum
SumIf
SumProduct
SumSq
SumX2MY2
SumX2PY2
SumXMY2
Syd
T_______________________________
Tanh
TDist
Text
TInv
Transpose
Trend
Trim
TrimMean
TTest
U_______________________________
USDollar
V_______________________________
Var
VarP
Vdb
VLookup
W_______________________________
Weekday
Weibull
X_______________________________
Y_______________________________
Z_______________________________
ZTest
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
低调侃大山
2015-08-27 · 家事,国事,天下事,关注所有事。
低调侃大山
采纳数:67731 获赞数:374603

向TA提问 私信TA
展开全部
VBA内置函数中没有求最大值的函数,但可以利用excel中表格可以用max函数,在VBA中也可以用,只需通过WorksheetFunction对象就可以引用,后面加函数名称,然后加range来引用单元格。举个例子:
Application.WorksheetFunction.Max(range("A1:C5"))
从 Visual Basic 中调用工作表函数:
在 Visual Basic 中,通过 WorksheetFunction 对象可使用 Microsoft Excel 工作表函数。
例如:

下 Sub 过程使用 Max 工作表函数来决定在某个单元格区域中的最大值。首先,将变量 myRange 声明为 Range 对象,然后将其设置为
Sheet1 上的 A1:C10 单元格区域。指定另一个变量 answer 为对 myRange 应用 Max 函数的结果。最后,answer 的值就被显示在消息框中。
编码如下:
Sub UseFunction()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:C10")
answer = Application.WorksheetFunction.Max(myRange)
MsgBox answer
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孔方兄文化
2015-06-28 · 专注交通及钱币收藏方面
孔方兄文化
采纳数:5490 获赞数:96687

向TA提问 私信TA
展开全部
VBA编程中通过WorksheetFunction对象引用,后面加函数名称,然后加range来引用单元格来求某列的最大值的函数:
Sub UseFunction()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:C10")
answer = Application.WorksheetFunction.Min(myRange)
MsgBox answer
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2c8e6de89
2006-01-06 · TA获得超过885个赞
知道小有建树答主
回答量:723
采纳率:0%
帮助的人:1075万
展开全部
Max(A1:A20)
1,开头的行值
20,结束的行值
A,列
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式