VBA条件和替换

VBA条件和替换,vba,Vba,PA[nosaukums]PA[A daudzums] 约翰123 ann423 在另一个excel电子表格dd中,我写下了安的名字 在L12的同一个电子表格中,我写下了数字 然后我按下按钮 例如:我选择名字安,写上号码(123);然后,excel公式减去(423-123=300)并用300 in PA[A daudzums]替换423 但是如果我输入数字423(423-423=0),那么程序会清除整行 我该怎么做呢。我知道我的英语不是很好。因此,如果有什么不可理解的事情,只需问:)我不太熟悉V

PA[nosaukums]PA[A daudzums]

约翰123

ann423

  • 在另一个excel电子表格dd中,我写下了安的名字
  • 在L12的同一个电子表格中,我写下了数字
  • 然后我按下按钮
  • 例如:我选择名字安,写上号码(123);然后,excel公式减去(423-123=300)并用300 in PA[A daudzums]替换423

    但是如果我输入数字423(423-423=0),那么程序会清除整行

    我该怎么做呢。我知道我的英语不是很好。因此,如果有什么不可理解的事情,只需问:)我不太熟悉VBA,我不知道如何做到这一点。我尝试过普通的excel公式,但我想不出一个方法来实现这一点。我问的最后一个问题是我用普通的细胞内公式解决的,但我甚至不认为这是可能的

    编辑: `私有子命令按钮1_单击()


    编辑以管理未找到的名称

    edited2将筛选字段管理为[PAtabula[Uznemuma osaukums]]。列

    试试这个

    Option Explicit
    
    Private Sub CommandButton1_Click()
    Dim Name As String
    Dim val As Double
    Dim cell As Range
    
    Name = Range("L8").Value
    val = Range("L12").Value
    
    [PAtabula].AutoFilter Field:=[PAtabula[Uznemuma nosaukums]].Column, Criteria1:=Range("L8").Value
    If CBool(Application.Subtotal(103, [PAtabula])) Then
        For Each cell In [PAtabula[Akciju daudzums]].SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants, xlNumbers)
            cell.Value = cell.Value - val
        Next cell
    End If
    [PAtabula].AutoFilter
    
    End Sub
    

    作为一个旁注,考虑使用完全限定的范围。例如,您可能希望使用

    ActiveSheet.Range(“L8”)
    而不是
    Range(“L8”)
    ,以确保指向所需的工作表

    显示代码。展示你到目前为止的想法。不管它是否起作用。不是每个人都能流利地说/读/写英语,但我们都懂代码,否则我们就不在这里了。几行代码可以告诉我们不止几个段落;如果英语不是你的母语,尤其如此。编辑这篇文章可能是因为excel表格有两列以上(6)我弄糟了一些东西。现在看来它不起作用了。它只是删除空的excel表格行。显示错误:对于[PAtabula[Akciju daudzums]]中的每个单元格。SpecialCells(xlCellTypeVisible)。SpecialCells(xlCellTypeConstants,xlNumbers)单元格。Value=单元格。Value-Val您必须输入的名称不在“PAtabula”表的“Uznemuma nosaukums”列中。我编辑了代码来处理这种情况我真的很不擅长这个。我不是在演戏,我在努力,但还是不行。现在它什么也不做;(它应该搜索Patabula[Uzņēmuma nosaukums]中的L8值和L12中的L12(减法值)。似乎“Uznemuma nosaukums”不是“Patabula”表中的第一个字段,正如我根据您的示例所假设的那样。请参阅确保始终在“Patabula”的“Uznemuma nosaukums”上进行过滤的编辑代码)tableUzņēmuma nosaukums为B4,akciju daudzums为C4;B5(名字);C5(第一个数字)。同一行中仍然存在错误424;(尝试了格式化,但仍然没有错误
    Option Explicit
    
    Private Sub CommandButton1_Click()
    Dim Name As String
    Dim val As Double
    Dim cell As Range
    
    Name = Range("L8").Value
    val = Range("L12").Value
    
    [PAtabula].AutoFilter Field:=[PAtabula[Uznemuma nosaukums]].Column, Criteria1:=Range("L8").Value
    If CBool(Application.Subtotal(103, [PAtabula])) Then
        For Each cell In [PAtabula[Akciju daudzums]].SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants, xlNumbers)
            cell.Value = cell.Value - val
        Next cell
    End If
    [PAtabula].AutoFilter
    
    End Sub