引用来自不同 sheet 的范围
Reference a range froma different sheet
我正在尝试创建一个优化直方图 bin 宽度的程序...虽然在此之前,我需要帮助完成一项看似简单的任务 - 将单元格中提到的范围设置为 VBA 数组。
我希望直方图的数据位于任何 sheet 上,在本例中为 'Data'!B4:M12。这在sheet的D4中提到了我希望直方图出现在上面。但是,当我 运行 我的代码时,即使多次更改它,我仍然会收到错误消息。显然存在语法错误,我不知道如何处理。
如有任何帮助,我们将不胜感激!
Sub Histogram_Shimazaki_Shinomoto()
Dim data_range As String, min_bins As Integer, max_bins As Integer
Dim Data()
Dim x_min As Double, x_max As Double
data_range = Cells(4, 4) ' data range
min_bins = Cells(5, 4) ' min # of bins
max_bins = Cells(6, 4) ' max # of bins
Set Data = Range(data_range)
x_min = WorksheetFunction.Min(Data)
MsgBox x_min
End Sub
您正在尝试将一个变体数组设置为一个范围 -- 但这是不可能的,因为您无法分配给一个数组。您可以将范围分配给一个简单的 Variant
(或 Range
变量)。你可以改变
Dim Data()
至
Dim Data as Variant
请注意没有括号。此外,作为一种文体观点,我认为明确类型是很好的,即使 Variant
是默认值。
这可能足以让您的代码正常工作,但如果您只需要范围内的最小 值,您可以更改
Set Data = Range(data_range)
至
Data = Range(data_range).Value
如果 sheet "Data" 不是活动的 sheet 并且 data_range
包含 "B4:M12" 那么您需要使用
Data = Sheets("Data").Range(data_range).Value
因为 Range
returns 活动范围 sheet 除非通过对 sheet.
的引用明确限定
我正在尝试创建一个优化直方图 bin 宽度的程序...虽然在此之前,我需要帮助完成一项看似简单的任务 - 将单元格中提到的范围设置为 VBA 数组。
我希望直方图的数据位于任何 sheet 上,在本例中为 'Data'!B4:M12。这在sheet的D4中提到了我希望直方图出现在上面。但是,当我 运行 我的代码时,即使多次更改它,我仍然会收到错误消息。显然存在语法错误,我不知道如何处理。
如有任何帮助,我们将不胜感激!
Sub Histogram_Shimazaki_Shinomoto()
Dim data_range As String, min_bins As Integer, max_bins As Integer
Dim Data()
Dim x_min As Double, x_max As Double
data_range = Cells(4, 4) ' data range
min_bins = Cells(5, 4) ' min # of bins
max_bins = Cells(6, 4) ' max # of bins
Set Data = Range(data_range)
x_min = WorksheetFunction.Min(Data)
MsgBox x_min
End Sub
您正在尝试将一个变体数组设置为一个范围 -- 但这是不可能的,因为您无法分配给一个数组。您可以将范围分配给一个简单的 Variant
(或 Range
变量)。你可以改变
Dim Data()
至
Dim Data as Variant
请注意没有括号。此外,作为一种文体观点,我认为明确类型是很好的,即使 Variant
是默认值。
这可能足以让您的代码正常工作,但如果您只需要范围内的最小 值,您可以更改
Set Data = Range(data_range)
至
Data = Range(data_range).Value
如果 sheet "Data" 不是活动的 sheet 并且 data_range
包含 "B4:M12" 那么您需要使用
Data = Sheets("Data").Range(data_range).Value
因为 Range
returns 活动范围 sheet 除非通过对 sheet.