减去两列,彼此作为条件,并追加值

时间:2015-07-29 21:20:11

标签: excel vba excel-vba

我需要从一个大数组中减去两列,看看哪些是正数,然后我需要找到正值行,并在该值上添加一些内容。

这是我到目前为止所考虑的一般概念

  

虽然< 8000
  if(cell(i,1).Value - cell(i,2)> 0)
  在另一个单元格中打印(i,3).value(单元格(i,2).Value-cell(i,4))cell.value(i,4)

例如......
假设我有这样的事情 [2 2嗨哟]
[3 2 go mo]

这个宏会在另一张表中返回“go 1 mo”。

Sub Leaves()
Dim i As Integer
Dim g As Integer
Dim Quantity As Integer
Dim Executed As Integer
Dim Leaves As Integer

i = 1
g = 1

Do While i < 8000
    Quantity = Worksheets("Sheet1").Cells(i, 3).value
    Executed = Worksheets("Sheet1").Cells(i, 5).value
    Leaves = Quantity - Executed
    If Leaves > 0 Then
        Worksheets("Sheet2").Cells(g, 1).value = _
            Worksheets("Sheet1").Cells(i, 9).value & _
            Worksheets("Sheet2").Cells(i, 2).value & _
            Leaves & Worksheets("Sheet2").Cells(i, 3).value
        g = g + 1
    End If
    i = i + 1
Loop

End Sub

上面的代码给出了Type mismatch错误。

1 个答案:

答案 0 :(得分:0)

如果你说什么行引发错误会很有帮助。此外,应该努力创建Minimal, complete, and verifiable example。这样做的努力通常会在您需要发布之前解决问题。

代码本身似乎很好,它运行(在空工作簿上),没有类型不匹配。因此,问题必须与您对电子表格的假设有关。

其中一行

Quantity = Worksheets("Sheet1").Cells(i, 3).value
Executed = Worksheets("Sheet1").Cells(i, 5).value
如果相应的值无法转换为整数,

将触发类型不匹配。例如,如果其中一个单元格包含字符串(除了“1”之外)或错误值(如#N / A或#Value!),就会发生这种情况。

开始的行

Worksheets("Sheet2").Cells(g, 1).value = _  
如果连接的其中一个值无法转换为字符串,

将抛出类型不匹配。其中一个单元格中的错误值是最可能的罪魁祸首。如果是这种情况,并且出于某种原因,您实际上想要创建一个包含子串的字符串,例如, “#N / A”然后您可以使用这些单元格的Text属性而不是Value