复制范围并计算值

时间:2017-06-28 20:06:29

标签: excel vba excel-vba

我目前正在构建一张工作表,用于将指定单元格中的数据组织到另一个指定单元格中。在某些情况下,被引用的单元格将为空白。我没有在编译区域显示空白单元格或“#VALUE”,而是希望显示“N / A”。如果引用的每个单元格中都有值,我现在可以使用的代码。但如果一个单元格为空(H12,E18,E17,E16,E15等),代码将停止,并显示错误消息为“运行时错误'13':类型不匹配”。

   Private Sub CommandButton2_Click()

   'See if quote full
    'if quote not full then add item
    If Application.WorksheetFunction.CountA(Range("A27:A102")) < 75 Then
     Dim fRow As Integer
    'search for first empty row on quote in specified range
    'and assign "fRow" to row number
    fRow = Range("A27:A102").Find(What:="", _
            After:=[A27], LookIn:=xlValues, _
            LookAt:=xlPart, SearchOrder:=xlByColumns, _
            SearchDirection:=xlNext, MatchCase:=False, _
            SearchFormat:=False).row
    'copy cell for cell
    Range("A" & fRow).Value = Range("B7") & "-" & Range("B10") & "-" & Range("E7") & "-" & Range("E8") & "-" & Range("E11")
    Range("B" & fRow).Value = Range("B14").Value 'Pipe Schedule
    Range("C" & fRow).Value = Range("B11").Value 'Gasket Size NPS
    Range("D" & fRow).Value = Range("H12").Value 'Sleeve Length [in]
    Range("E" & fRow).Value = Range("H12").Value * 25.4 'Sleeve Length [mm]
    Range("F" & fRow).Value = Range("H13").Value 'Sleeve Qty
    Range("G" & fRow).Value = Range("H11").Value 'Bolt Size
    Range("H" & fRow).Value = Range("H9").Value 'Isolating/BackUp Washer Qty
    'Range("I" & fRow).Value = Range("H9").Value 'Empty
    Range("J" & fRow).Value = Range("E19").Value 'Bolt Hole Qty
    Range("K" & fRow).Value = Range("E18").Value 'Bolt Hole Size [in]
    Range("L" & fRow).Value = Range("E18").Value * 25.4 'Bolt Hole Size [mm]
    Range("M" & fRow).Value = Range("E17").Value 'Bolt Hole Circle [in]
    Range("N" & fRow).Value = Range("E17").Value * 25.4 'Bolt Hole Circle [mm]
    Range("O" & fRow).Value = Range("E16").Value 'D Dim [in]
    Range("P" & fRow).Value = Range("E16").Value * 25.4 'D Dim [mm]
    Range("Q" & fRow).Value = Range("E15").Value 'C Dim [in]
    Range("R" & fRow).Value = Range("E15").Value * 25.4 'C Dim [mm]
    Range("S" & fRow).Value = Range("E13").Value 'B Dim [in]
    Range("T" & fRow).Value = Range("E13").Value * 25.4 'B Dim [mm]
    Range("U" & fRow).Value = Range("E14").Value 'A Dim [in]
    Range("V" & fRow).Value = Range("E14").Value * 25.4 'A Dim [mm]
    Range("W" & fRow).Value = Range("B11").Value 'Gasket Size NPS
Else ' if quote full give message
    MsgBox "Cart Full - Good Work!"
End If

End Sub

我知道错误是因为我试图从空白单元格中计算一个值,但是如何插入某种类型的“If”语句;或其他逻辑,计算值返回一个数字或“N / A”(如果参考单元格为空白)?

0 个答案:

没有答案