VBA循环,在列中重复公式

时间:2019-03-13 20:36:13

标签: excel vba loops repeat

我正在尝试在VBA中复制excel中的简单函数,该函数允许您在整个列中重复一个函数,并在侧面的列为空时停止。具体来说,我想对列的整个相关部分重复一个if-else if函数

这是一个没有用的尝试

Sub RepeatIfElseif
    Range("A1").Select
    If selection > 0 Then
        Range("B1").Select
        ActiveCell.FormulaR1C1 = "X"
        Range("A1").Select
    ElseIf selection <= 0 Then
        Range("B1").Select
        ActiveCell.FormulaR1C1 = "Y"
    End If
    Range("B1").Select
    selection.AutoFill Destination:=Range("B1:B134")

有什么办法可以循环吗?

3 个答案:

答案 0 :(得分:0)

如果要使用循环,可以使用以下代码:

fork

它可以像没有循环那样完成:

For i = 1 To 134
    If Range("A" & i).Value > 0 Then
        Range("B" & i).FormulaR1C1 = "X"
    Else
        Range("B" & i").FormulaR1C1 = "Y"
    End If
Next I

不确定要使用Range("B1:B134").Formula = "=IF(A1>0," & Chr(34) & "X" & Chr(34) & "," & Chr(34) & "Y" & Chr(34) & ")" 实现什么公式?

答案 1 :(得分:0)

我正在努力提高英语水平,我发誓...

我会做这样的事情:

function missing(array1, array2) {
  const copy = array1.slice()
  return array2.some(element => {
    const index = copy.indexOf(element)
    if(index >= 0) copy.splice(index, 1);
    return index < 0
  })
}


var array1 = ['bob', 'george'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['bob', 'frank'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['frank', 'george'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['frank', 'bob', 'george'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['frank', 'george', 'sue', 'frank'];
var array2 = ['bob', 'george', 'frank'];

console.log(missing(array1, array2))

var array1 = ['frank', 'george', 'sue', 'frank'];
var array2 = ['bob', 'george', 'frank', 'janet'];
console.log(missing(array1, array2))

var array1 = ['frank', 'george'];
var array2 = ['frank', 'frank'];
console.log(missing(array1, array2))

希望这会有所帮助。

答案 2 :(得分:0)

您无需循环即可放入公式。您只需要知道最后一行在哪里!


选择最有可能代表最后一行的列(在我的示例中,我使用的是Column A),然后可以动态地下拉一行而不用环。

下面将填充A2 + 1中的方程Column B,从第二行开始(假设您有标题行),直到{{1 }}


Column A