【问题标题】:macro for creating matrix rows for Node optimization用于为节点优化创建矩阵行的宏
【发布时间】:2015-07-14 00:48:26
【问题描述】:

我目前正在处理 Excel 中的旅行销售人员问题。为此,我需要生成彼此平行的两行(Row1 表示行 Row2 表示列)并使用 INDEX MATCH MATCH 查找节点之间的距离并使用求解器求解,以获得最小化距离的最佳序列。

例如,我有四个名为 [1][2][3][4] 的节点的第 0 行。

  • 距离矩阵
  • __[1][2][3][4]
  • [1] 0、4、5、7
  • [2] 4, 0, 6, 2
  • [3] 5、6、0、1
  • [4] 7、2、1、0

必须取第0行,并使用宏开发以下2行

  • 第 1 行 [1][1][1][2][2][3]
  • 第 2 行 [2][3][4][3][4][4]

然后我可以使用索引匹配匹配自动将下面的所有距离带到第三行:

  • 第 1 行 [1][1][1][2][2][3]
  • 第 2 行 [2][3][4][3][4][4]
  • 第 3 行 4、5、7、6、2、1

请帮助我开发宏以创建第 1 行和第 2 行。这应该能够解释任意数量的节点,而不仅仅是示例中列出的 4 个。

【问题讨论】:

  • 我认为没有人会为您编写代码。你最好把你写的代码贴出来,然后问什么是行不通的。
  • 节点名称不一定是升序的,这意味着 row0 中的名称可能是 [9][2][3][5][1][11]

标签: excel row traveling-salesman


【解决方案1】:

我得到了第 2 行的答案。抱歉,这似乎是一个基本问题,但我是 VBA 的菜鸟,希望能变得更好。当我有下一行的答案时,我会发布。

Sub Macro1()
'
' Macro1 Macro
k = 5
i = 0
j = 0
rwar = Worksheets("Sheet1").Cells(13, 5).Value
For i = 3 To rwar + 1
rwar = rwar - 1
    For j = 1 To rwar
    Worksheets("Sheet1").Cells(16, k) = Worksheets("Sheet1").Cells(i, 5).Value
    k = k + 1
    Next j

Next i


'
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    相关资源
    最近更新 更多