用于为节点优化创建矩阵行的宏

时间:2015-05-04 15:03:09

标签: excel row traveling-salesman

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

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

  • 距离矩阵
  • __ [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个节点。

1 个答案:

答案 0 :(得分:0)

我得到第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