【问题标题】:Excel Vba how to find row's minimum value in for loopExcel Vba如何在for循环中找到行的最小值
【发布时间】:2021-03-25 02:19:57
【问题描述】:

我正在为 VRP 使用 dijkstra 算法,所以它的工作原理是这样的 我在节点号(1,2,3,..)之间给出一个随机输入,在输入之后它将它作为 i 并开始在 i 中搜索最小值。行并找到 j 处的最小值。列所以下一步 j 成为我的下一行,我试图像这样迭代 所以我需要在我试图给出的 for 循环中找到行的最小值

application.worksheet.function.min(range) 

For i = Sheets("sayfa1").Cells(15, 1) To Sheets("sayfa1").Cells(15, 1) + 1
For j = i + 1 To 11
    if cell(i,j) = application.WorksheetFunction.Min(range of row) then
         cell.clearcontents
    end if
   i = j 
nextj

但是范围总是按行改变,所以它不起作用

【问题讨论】:

  • 这段代码真的运行了吗?
  • 其实不是伪代码,我只是在这个地方挣扎,想问问

标签: excel vba dijkstra


【解决方案1】:

我不太清楚您需要准确确定什么。据我了解,我很快就为您的问题编写了一个宏。希望它可以解决您的问题,或者至少可以帮助您找到解决方案。你可以试试这样的:

Sub Min_values_loop()

Dim ws1 As Worksheet
Dim FirstCol As Long, LastCol As Long, FirstRow As Long, LastRow, MinValue As Long

'set sheet name
Set ws1 = Worksheets("sayfa1")

'set your frist and last column and row numbers here
FirstCol = 1
LastCol = 3
FirstRow = 1
LastRow = 10

'loop through columns
For i = FirstCol To LastCol
    MinValue = Application.WorksheetFunction.Min(ws1.Range(Cells(FirstRow, i), Cells(LastRow, i)))
    MsgBox "The minimum value in the range is " & MinValue
Next i

End Sub

您可以根据需要更改第一行和最后一行或列号。

【讨论】:

  • 谢谢你的帮助,但这不是我搜索的内容,你能告诉我应该在哪里解释更多吗,我的主要问题是我将搜索行的最小值,但选定的行总是在改变,循环将确定行,如果我的第一个最小值在(1,7),那么我将清除单元格,我的下一行将是 7
猜你喜欢
  • 1970-01-01
  • 2015-04-01
  • 2016-08-05
  • 1970-01-01
  • 2015-04-28
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
相关资源
最近更新 更多