将文本文件复制到Excel工作表

时间:2019-07-15 08:00:34

标签: excel vba

我尝试通过VBA将文本文件复制到Excel中。该文件中有很多不需要的行和字符串,但我只希望Excel表下有特定的行和字符串。

Sub Inte()
    Dim j, LastCol As Long
    Dim inval As Variant

    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    LastCol = Sheet12.Cells(1, Columns.Count).End(xlToLeft).Column

    For i = 1 To LastRow
        For j = 7 To LastCol
           If Cells(i, j).Value <> Int(Cells(i, j).Value) Then
               If InStr(1, Cells(i, j).Value, ".0") > 0 Then
                   Cells(i, 7).Value = Cells(i, 7) & Cells(i, j)
                   Cells(i, j).ClearContents
               End If

       Next j
    Next i

    'Columns("").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Range("A14", "A21").EntireRow.Delete
End Sub

创建逻辑没有可遵循的特定模式,因此在将所有数据从文本文件复制到Excel之后,我开始根据行和列在Excel中进行编码

现在,我希望追加一些列数据,例如col7,col8,col9,直到达到十进制值,即价格列470.00(这必须在单独的列中),因此,第7列中的所有之前列必须附加空格。

在下一行中可能要追加col7,col8

例如:洗涤剂(LIME-A-WAY)应该为3.8 Lt.,但是当将文本文件读入excel时,所有这些值都在单独的列中。

1 个答案:

答案 0 :(得分:1)

要测试单元格值是否为小数,可以使用类似的

Option Explicit

Public Function IsDecimal(ByVal InputValue As Variant) As Boolean
    IsDecimal = IsNumeric(InputValue) And InStr(1, InputValue, Application.DecimalSeparator) > 0
End Function

因此,您只需要一个语句即可代替您的2条If语句:

If IsDecimal(Cells(i, j).Value) Then