Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将所有不完整行中的条目与其上方完整行中的条目连接起来_Vba_Excel_Concatenation_Data Cleaning - Fatal编程技术网

Vba 将所有不完整行中的条目与其上方完整行中的条目连接起来

Vba 将所有不完整行中的条目与其上方完整行中的条目连接起来,vba,excel,concatenation,data-cleaning,Vba,Excel,Concatenation,Data Cleaning,我使用在线文件格式转换器将一些包含大量价目表的文件从*.pdf格式转换为*.xls格式。然而,转换并没有得到预期的结果,需要对文件进行更多的清理工作。使用宏记录器和tack overflow尝试了各种不同的方法,但都失败了 我需要一个宏对我的数据执行以下清理工作 循环选定数据中的行,并搜索一个或多个单元格中缺少条目的不完整行。 将这些不完整行中的文本与其上方第一个完整行中相同列中的单元格连接起来。 榜样 如果行A包含所有条目,但行B在产品代码列中缺少条目,则行B中的针描述列中的条目应与行A中的针

我使用在线文件格式转换器将一些包含大量价目表的文件从*.pdf格式转换为*.xls格式。然而,转换并没有得到预期的结果,需要对文件进行更多的清理工作。使用宏记录器和tack overflow尝试了各种不同的方法,但都失败了

我需要一个宏对我的数据执行以下清理工作

循环选定数据中的行,并搜索一个或多个单元格中缺少条目的不完整行。 将这些不完整行中的文本与其上方第一个完整行中相同列中的单元格连接起来。 榜样

如果行A包含所有条目,但行B在产品代码列中缺少条目,则行B中的针描述列中的条目应与行A中的针描述连接

此文件包含10行数据。表1显示了前两个产品中包含不完整行的数据。表2显示了我想要的表单


我非常感谢您在这方面的任何帮助,因为这会让我省去很多麻烦。

我没有调出该文件,因为该网站有极端安全风险警告,但以下代码将尽我所能满足您的要求。如果没有,请澄清,我将根据需要进行修改

我的Excel列按以下顺序排列: ID、产品代码、产品描述

Sub Cleanse()
    'Fill an empty or blank cell in selection
    'with formula specified

    'First Highlight Affected Range, then run this macro

    Dim cell As Range

    On Error Resume Next

    'Set formula to include in empty cells
    'to be the description of existing row plus description of previous row

    'Test for empty cell. If empty, fill cell with value given
    For Each cell In Selection
        If IsEmpty(cell) Then
            cell.FormulaR1C1 = "=RC[1]&R[-1]C[1]"
        End If
    Next
End Sub
如果您的描述不是ProductCode右侧的第一列,那么这将不起作用。请告诉我您的列的顺序,我会根据需要进行修改

将下面的内容复制到模块中 突出显示您希望清理的范围 运行宏清理 它将在所有行中循环,并用以下连接填充所有空单元格: CurrentRowNeedDescription和PreviousRowNeedDescription

Sub Cleanse()
    'Fill an empty or blank cell in selection
    'with formula specified

    'First Highlight Affected Range, then run this macro

    Dim cell As Range

    On Error Resume Next

    'Set formula to include in empty cells
    'to be the description of existing row plus description of previous row

    'Test for empty cell. If empty, fill cell with value given
    For Each cell In Selection
        If IsEmpty(cell) Then
            cell.FormulaR1C1 = "=RC[1]&R[-1]C[1]"
        End If
    Next
End Sub

希望有帮助

是否可以在你的问题中添加一个文本示例,说明你拥有什么以及你想要什么?我对下载文件犹豫不决,但希望在这方面提供帮助。按照以下步骤,选择整个范围。转到:查找并选择-->转到特殊。选择空白单元格。点击=然后按向上箭头,然后按Ctrl-Enter键。它应该用一个与上面单元格相等的公式填充所有空单元格。然后可以复制和粘贴这些值。