-1

我想知道,给定一个 excel 文件中的 3 列,如何在给定第三列的值的情况下有条件地交换前 2 列的内容。

美国广播公司


a 1 y
b 2 n
c 3 y
d 4 y
e 5 n

我想要做的是:每当 C 列中有一行包含值“y”时,我想交换同一行的 A 列和 B 列中的值。

除了VBA没有别的办法了吗?

希望问题很清楚。

谢谢

4

1 回答 1

1

我看到了两种方法:

  1. 创建 2 列,在其中插入一个简单的函数,例如 =IF(C="something", B, A)在另一列上插入相反的 (A,B)。这将根据需要进行切换,然后您可以将值复制粘贴到列上并删除临时列。
  2. if-statement在循环内部使用简单的交换算法。如果您对 VBA 有非常基本的了解,这应该非常简单。如果你没有这方面的知识,那就去internetz上查一下。

代码的总体感觉应该是:

Dim cell as Range
Dim temp as string
for each cell in Range("C2:C" & Range("C2").End(xlDown).Row)
    if cell.value = "something" then
        temp = cell.offset(0, -1).value
        cell.offset(0, -1).value = cell.offset(0, -2).value
        cell.offset(0, -2).value = temp
    end if
next cell
于 2012-12-10T17:31:20.697 回答