【发布时间】:2019-07-15 17:46:41
【问题描述】:
我尝试通过 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 时,所有这些值都在单独的列中。
【问题讨论】:
-
有问题吗?
-
①我缩进了你的代码,所以你可以看到有一个
End If丢失。此代码应引发异常/错误。 ② 如果您声明Dim j, LastCol As Long,则仅声明LastCol声明As Long,但声明j声明As Variant。您必须为 VBADim j As Long, LastCol As Long中的 每个 变量指定一个类型。你也应该使用Option Explicit来确保你声明了all你的变量。例如i和LastRow没有被声明。 -
这只是一个从主函数调用的子函数,所以在复制实际数据时,抱歉我错过了一些。所以我想要一个代码,它从第 7 列读取所有行,直到达到十进制值单元格,并将其间的所有单元格附加到第 7 列单元格。
-
If InStr(1, Cells(i, j).Value, ".0") > 0 然后,此代码无法检查单元格是否包含小数列,所以我想要一些代码,它检查循环中的单元格值是否为小数。
-
请提供正确的示例数据以及您期望的输出结果。我们需要minimal reproducible example 来为您提供适当的帮助。