Excel 从range.formula函数获取错误消息
我曾尝试运行此sub以生成随机样本,但当我尝试修复公式时,在获取值的状态下,仅在单元格“Name”中收到一条错误消息。 有人能帮忙吗 这是代码,谢谢:Excel 从range.formula函数获取错误消息,excel,vba,random,range,simulation,Excel,Vba,Random,Range,Simulation,我曾尝试运行此sub以生成随机样本,但当我尝试修复公式时,在获取值的状态下,仅在单元格“Name”中收到一条错误消息。 有人能帮忙吗 这是代码,谢谢: Option Explicit Sub Simulation() Dim iSize As Integer, pMean As Double, pSD As Double, iBins As String iBins = 15 iSize = InputBox("New sheet: The size of your
Option Explicit
Sub Simulation()
Dim iSize As Integer, pMean As Double, pSD As Double, iBins As String
iBins = 15
iSize = InputBox("New sheet: The size of your sample:", , 100)
pMean = InputBox("New sheet: The mean of yoursample:", , 10)
pSD = InputBox("New sheet: The SD of your sample:", , 0.2)
Set oWS = Worksheets.Add(, ActiveSheet)
Range(Cells(1, 1), Cells(iSize, 1)).Formula = "=Application.WorksheetFunction.NormInv(Rnd(), " & pMean & " , " & pSD & ")"
Range(Cells(1, 1), Cells(iSize, 1)).Formula = Range(Cells(1, 1), Cells(iSize, 1)).Value
Range("E1") = Application.WorksheetFunction.Average(Columns(1))
end sub
试一试
范围(单元格(1,1),单元格(iSize,1))。公式=“=NormInv(Rand(),”&pMean&“,&pSD&”)
如果在工作表单元格中键入=Application.WorksheetFunction.NormInv(Rnd(),10,0.2)
,将得到完全相同的#NAME?
错误,因为Excel不知道任何应用程序.WorksheetFunction.NormInv
函数
Excel不是VBA,VBA不是Excel-VBA托管在Excel中,VBA项目引用Excel的类型库,该类型库定义了应用程序
,范围
,以及工作表函数.NormInv
在写入Range.Formula
时,您希望该值与您在Excel的公式栏中键入的值完全相同
您还需要正确地限定这些范围
和单元格
调用:
With oWS
.Range(.Cells(1, 1), .Cells(iSize, 1)).Formula = "..."
End With
其中,
“…”
看起来与中的完全相同,只是您希望使用Excel的RAND
函数而不是VBA的Rnd
函数。范围。公式需要一个类似于您在Excel单元格中输入的公式,从您的范围中取出.Formula
,它将正常工作。注意-这些不合格的范围
,单元格
,和列
调用应针对oWS
@saidRnd
是VBA函数。试试Excel的RAND
。