将文本文件复制到Excel工作表
我试图通过VBA将文本文件复制到Excel中。文件中有许多不需要的行和字符串,但我只希望Excel工作表下有特定的行和字符串将文本文件复制到Excel工作表,excel,vba,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 Fo
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
Sub-Inte()
Dim j,LastCol尽可能长
Dim inval作为变体
LastRow=单元格(Rows.Count,1).End(xlUp).Row
LastCol=Sheet12.单元格(1,Columns.Count).结束(xlToLeft).列
对于i=1到最后一行
对于j=7到LastCol
如果单元格(i,j).Value Int(单元格(i,j).Value),则
如果InStr(1,单元格(i,j).Value,“.0”)>0,则
单元格(i,7)。值=单元格(i,7)和单元格(i,j)
细胞(i,j).透明内容物
如果结束
下一个j
接下来我
'列(“”)。特殊单元格(xlCellTypeBlanks)。EntireRow.Delete
范围(“A14”、“A21”).EntireRow.Delete
端接头
在创建逻辑时没有可以遵循的特定模式,所以在将文本文件中的所有数据复制到Excel中之后,我开始在Excel中基于行和列进行编码
现在我想添加一些列数据,即col7、col8、col9,直到达到一个十进制值,即price列470.00
(必须在单独的列中),因此第7列的所有before列都必须添加空格
在下一行中,它可以是col7,col8被追加
例如:洗涤剂(石灰)3.8 Lt是预期值,但当文本文件读入excel时,所有这些值都在单独的列中。要测试单元格值是否为十进制值,可以使用如下内容
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
有问题吗?① 我缩进了您的代码,这样您就可以看到,如果缺失,则会有一个
结尾。此代码应引发异常/错误。② 如果将Dim j声明为Long,则仅将LastCol
声明为Long
,而将j
声明为Variant
。必须为VBADim j中的每个变量指定一种类型,长度为LastCol
。您还应该使用选项Explicit
来确保声明所有变量。例如,i
和LastRow
未声明。这只是从主函数调用的一个子函数,因此在复制实际数据时,很抱歉我遗漏了几个。所以我想要一个代码,它读取第7列的所有行,直到到达一个十进制值单元格,并将中间的所有单元格追加到第7列单元格。如果InStr(1,cells(i,j).value,“.0”)>0,那么该代码无法检查单元格是否包含十进制列,因此我需要一些代码,它检查循环中的单元格值是否为十进制。请提供适当的示例数据以及预期的输出结果。我们需要a来正确地帮助您。isDecimal逻辑不起作用:(…我希望这个逻辑一直执行到循环,在第7列中,所有正确的列值都必须追加,直到到达decimal value列