Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA-在工作表中循环查找用户选定范围内的最大值_Excel_Vba_For Loop_Input_Worksheet - Fatal编程技术网

Excel VBA-在工作表中循环查找用户选定范围内的最大值

Excel VBA-在工作表中循环查找用户选定范围内的最大值,excel,vba,for-loop,input,worksheet,Excel,Vba,For Loop,Input,Worksheet,我正在尝试查找工作簿中每个工作表的最大值,该值取决于用户选择的范围。我希望用户只选择一次范围,然后根据该范围找到每个工作表的最大值 换句话说,假设用户选择B1:B100范围。宏应循环遍历每个工作表,并在每个工作表的B1:B100范围内找到最大值 最终,每个工作表都有一组数据点,我想用它们除以用户选择范围内的最大值 这是我的代码(好吧,相关部分): 不幸的是,宏只找到第一个工作表的最大值,并将该值应用于所有其他工作表。理想情况下,每个工作表将被其唯一的maxval划分 我当然会感谢任何给予我的帮助

我正在尝试查找工作簿中每个工作表的最大值,该值取决于用户选择的范围。我希望用户只选择一次范围,然后根据该范围找到每个工作表的最大值

换句话说,假设用户选择B1:B100范围。宏应循环遍历每个工作表,并在每个工作表的B1:B100范围内找到最大值

最终,每个工作表都有一组数据点,我想用它们除以用户选择范围内的最大值

这是我的代码(好吧,相关部分):

不幸的是,宏只找到第一个工作表的最大值,并将该值应用于所有其他工作表。理想情况下,每个工作表将被其唯一的
maxval
划分


我当然会感谢任何给予我的帮助

以下是一个示例,说明如何获取每张图纸中当前范围的最大值:

Sub MaxInSheets()
    Dim MyRange As String, WS As Worksheet
    MyRange = Selection.Address
    For Each WS In Worksheets
        MsgBox WS.Name & " - " & WorksheetFunction.Max(WS.Range(MyRange))
    Next
    MsgBox MyMaxValue
End Sub
如果您需要帮助将其实现到您自己的代码中,请发回


我试着让MyRange成为一个范围,但它不喜欢,我不是100%确定,但我认为它可能会保留该表作为范围内的参考?对该对象有更多了解的人将能够确认这一点。

您可以直接从用户那里获取用户范围,然后按如下方式应用它:

Sub Test()
Dim rng1 As Range
Dim ws As Worksheet

On Error Resume Next
Set rng1 = Application.InputBox("Pls select range to examine (on all sheets)", "User Input", Selection.Address, , , , , 8)
On Error GoTo 0
If rng1 Is Nothing Then Exit Sub

For Each ws In ActiveWorkbook.Sheets
 Debug.Print ws.Name, Application.WorksheetFunction.Max(ws.Range(rng1.Address))
Next

End Sub
Sub Test()
Dim rng1 As Range
Dim ws As Worksheet

On Error Resume Next
Set rng1 = Application.InputBox("Pls select range to examine (on all sheets)", "User Input", Selection.Address, , , , , 8)
On Error GoTo 0
If rng1 Is Nothing Then Exit Sub

For Each ws In ActiveWorkbook.Sheets
 Debug.Print ws.Name, Application.WorksheetFunction.Max(ws.Range(rng1.Address))
Next

End Sub