我必须将数据从PDF导入SAS,一步是将PDF数据转换为Excel电子表格,然后再转换为文本以便进行简单的SAS导入。通常,PDF数据可以很好地转换为excel,几乎没有错误。当我尝试导入较旧的数据时,它变得非常混乱,并且一些行被包装在单个单元格中。我想弄清楚是否有可能的宏可以帮助我在没有太多手动操作的工作表中修复此错误。我以前从未在VBA中编程,所以我对excel宏很新。
以下是凌乱数据的示例:
以下是普通数据的示例:
(*注意两个图像中的数据值不同,仅用于格式化)
我尝试过处理宏。为此,我将杂乱的数据复制到另一张纸上,并运行宏,在单独的工作表上输出更正的数据,然后我将更正的数据复制到原始电子表格中的杂乱数据上。 在尝试编写宏之后,我无法弄清楚如何告诉excel将C,D,E,F列中的数据合并到一个单元格中并打破包装文本,依此类推其他合并列(如凌乱的数据图像所示)。 这是我在看完一些教程后得到的当前代码:
Sub Split_Text_to_Rows()
Dim splitVals1 As Variant
Dim splitVals2 As Variant
Dim totalVals As Long
Set sh1 = ThisWorkbook.Sheets(2)
Set sh2 = ThisWorkbook.Sheets(3)
sh2.Cells.Clear
lrow1 = sh1.Range("A65356").End(xlUp).Row
For j = 1 To lrow1
splitVals1 = Split(sh1.Cells(j, 1), Chr(10))
splitVals2 = Split(sh1.Cells(j, 2), Chr(10))
For i = LBound(splitVals1) To UBound(splitVals1)
lrow2 = sh2.Range("A65356").End(xlUp).Row
sh2.Cells(lrow2 + 1, 1) = splitVals1(i)
Next i
For k = LBound(splitVals2) To UBound(splitVals2)
lrow3 = sh2.Range("B65356").End(xlUp).Row
sh2.Cells(lrow3 + 1, 2) = splitVals2(k)
Next k
Next j
End Sub
正如您所看到的,我的代码也非常混乱。虽然,我得到的代码适用于A列和B列,当我到达C列 - “机动车盗窃”等等时,我不知道如何分离该包装文本,因为它们在C,D列中合并, E,F。我还想将列I到Q保持为两个合并的行,即使宏将1行分成2行(在普通数据图像中显示),然后继续将单元格分割到列Z. 任何提示都会有所帮助!如果需要更多信息或说明,请与我们联系。