天儿真好,
我有一个问题,更多的是帮助自己了解Excel的数组公式(Control + Shift + Enter)如何动态地将每个单元格读入公式.
我做了一个简化的例子来向你展示我的意思.
我创建了一个小型的虚构农场,有一些动物,按名字列出,并提供动物的声音.在下一篇专栏文章中,我创建了一个名为MakesSound的用户定义函数,它接受动物的输入并响应动物的声音.如下面的快照图所示.

不幸的是,我认为arrayformula可以拿起我有不同的单元格列出动物,它结束就像这个快照.

所以我怎么能要求arrayformula识别我在B列中有不同的细胞因为我知道Quacks不是其他动物的答案.:-)
这是另一个快照,显示了arrayformulas旁边的公式,用于比较和我使用的代码.

Public Function MakesSound(AnimalName As String) As Variant
Select Case AnimalName
Case Is = "Duck"
MakesSound = "Quack!"
Case Is = "Cow"
MakesSound = "Moo!"
Case Is = "Bird"
MakesSound = "Tweet!"
Case Is = "Sheep"
MakesSound = "Ba-Ba-Ba!"
Case Is = "Dog"
MakesSound = "Woof!"
Case Else
MakesSound = "Eh?"
End Select
End Function
Run Code Online (Sandbox Code Playgroud)
我愿意接受建议.
谢谢,彼得.
天儿真好,
我有一个问题,更多的是帮助我理解更多关于Excel VBA如何有效地管理已在一个地方声明的定义范围以便很好地执行数据.在更多关于这个项目的工作之前,只是想弄清楚哪两个选项(我知道到目前为止)是否是更好的最佳实践.
我正在解决的问题是在一组虚构的供应商中创建一个包含许多失败的小表,因此表格看起来像这样(抱歉它是原始形式)
"公司名称""失败的数量"
"冷却机器"7
"冷却剂宿舍"5
"小水冷却剂3
"空气移动系统"7
"将军冷却剂"5
"赞赏冷却剂"4
我的第一个选项(Const String)是这个模块/公式,如下所示.
Option Explicit
Public Const CountofFailures As String = "J7:J12"
Sub btnRandom()
' Declaration of variables
Dim c As Range
' Provide a random number for failures across Suppliers
For Each c In ActiveSheet.Range(CountofFailures)
c.Value = Random1to10
Next c
End Sub
Function Random1to10() As Integer
'Ensure we have a different value each time we run this macro
Randomize
' Provide a random number from 1 to 10 (Maximum …Run Code Online (Sandbox Code Playgroud) 我想做一系列小测试,帮助建立我的理解,因为我解决了以正确方式生成数据的小业务问题.
我的第一种方法是为自己证明我可以在VBE的立即窗口中打印(字符串数据类型)ID列表(使用.value方法),这样我就可以看到列表然后我可以构建另一个测试.
我的VBA代码目前显示了这一点,我将"CustTest"定义为A1中的命名范围:工作表1中的A100
Sub TestRanges()
Dim Custrng As Range
For Each Custrng In Range("CustTest")
Print Custrng.Value
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
我也想到了这个
Sub TestRanges()
Dim Custrng As Range
For Each Custrng In Range("CustTest")
With Custrng
Print .Value
End With
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
这出现了一个错误,我不确定发生了什么,编译错误: - 没有合适的对象,方法无效.
有什么建议?
谢谢,彼得.