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