我录制了一个创建直方图的宏。代码就是这个
Sub histcreate
Application.Run "ATPVBAEN.XLAM!Histogram", ActiveSheet.Range( _
"$A$3:$A$1601"), ActiveSheet.Range("$BH$1"), , False, False, True, _
True
End Sub
我想修改这个宏,这样它不仅可以创建一个直方图,还可以创建50个带范围的直方图
"$B$3:$B$1601"
"$C$3:$C$1601"
等等。我想我应该使用for循环,但我不知道如何循环字母。 谢谢!
答案 0 :(得分:0)
尝试这样的事情(未经测试,但根据评论进行修订)。这在循环中使用.Offset
方法和计数器/循环变量i
。
Sub histcreate
Dim firstRange as Range
Dim secondRange as Range
Dim numberOfColumns as Long
'### How many columns wide is the data which will plot as histograms?
numberOfColumns = 50
'### Define the first column of data used for the histogram
Set firstRange = ActiveSheet.Range("$A$3:$A$1601")
'### Define the second range (originally $BH$1)
Set secondRange = ActiveSheet.Range("$BH$1)
For i = 0 to (numColumns -1)
Application.Run "ATPVBAEN.XLAM!Histogram", _
firstRange.Offset(0,i).Address, _
secondRange.Offset(0,i*2), _
, False, False, True, True
Next
End Sub
从评论中更新
我认为你的函数调用有问题。我在别处找到的示例显示了不同的参数,或者至少,它们省略范围参数。例如,请参阅 HERE 。
给出的示例HERE表示参数的不同顺序,第一个和第三个参数作为Range对象,第二个参数作为""
空字符串给出。
此函数没有详细记录,但我认为如果您按照第一个链接并尝试找出三个范围参数需要的内容,那么您将能够根据需要更新此代码。