如何编写VBA代码?

左边数组一共454行,每行为一组,一共454组A1:R454
要求:
第一组和第二组直至到454组分别对比找出相同的数字,在T1:AM1范围往下列出。就有453组。
然后
第二组和第三组直至到454组分别对比找出相同的数字,在T454:AM454范围往下列出。就有452组
以此类推
直至453组和454组对比
像这样的代码要如何写呢?

img

以下内容部分参考ChatGPT模型:


我可以给你提供一些C语言处理数组的思路。

你可以使用一个双重循环来遍历数组,外层循环遍历第一组到倒数第二组,内层循环遍历外层循环下一组到最后一组,将两组数组进行比较,找出相同的数字,并将它们存储到一个新的数组中。最后遍历新数组,将相同的数字输出到T1:AM1范围往下列出。

以下是一个伪代码示例:

int left_array[454][18]; // 左边数组
int result_array[100]; // 存储相同数字的数组
int result_index = 0; // 存储相同数字的数组下标

for (int i = 0; i < 453; i++) { // 外层循环遍历第一组到倒数第二组
  for (int j = i+1; j < 454; j++) { // 内层循环遍历外层循环下一组到最后一组
    for (int k = 0; k < 18; k++) { // 遍历每一组的18个数字
      if (left_array[i][k] == left_array[j][k]) { // 如果两组的数字相同
        result_array[result_index++] = left_array[i][k]; // 存储相同数字
        break; // 跳出当前循环,继续比较下一个数字
      }
    }
  }
}

// 将相同数字输出到T1:AM1范围往下列出
for (int i = 0; i < result_index; i++) {
  printf("%d ", result_array[i]); // 这里用printf代替输出到Excel
}

希望以上思路能够对你有所帮助。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快