我想知道,给定一个 excel 文件中的 3 列,如何在给定第三列的值的情况下有条件地交换前 2 列的内容。
美国广播公司
a 1 y
b 2 n
c 3 y
d 4 y
e 5 n
我想要做的是:每当 C 列中有一行包含值“y”时,我想交换同一行的 A 列和 B 列中的值。
除了VBA没有别的办法了吗?
希望问题很清楚。
谢谢
我看到了两种方法:
=IF(C="something", B, A)
在另一列上插入相反的 (A,B)。这将根据需要进行切换,然后您可以将值复制粘贴到列上并删除临时列。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