2016-07-07 36 views
0

嗨我有脚本,在每个约10 INSERT语句很长的列表中的文件夹,Excel脚本转换为excel&split by;

只是想知道是否有反正我可以把这些脚本轻松导入到Excel电子表格(不是脚本名称,但实际内容)并用分隔符分隔;所以每个单元格插入一条语句?

我有VBA的一半体面的理解,如果没有人希望提供一个答案的方向是正确的点,将不胜感激:)

在此先感谢

+0

这些.sql文件或不同的数据类型? –

+0

这些都是.sql文件道歉 –

+0

当然,你为什么想把这些全部放入Excel?如果你想将它们转移到某个地方或发邮件,那么我只需将该文件夹压缩并发送即可。 –

回答

0

这应该让你开始。将你的字符串读入拆分语句中(我刚刚使用新工作簿的Sheet1的单元格A1中的值对此进行了嘲弄,然后打印出所有分割为第二行的值

将此与Dave的注释上面的,你应该有你的解决方案

Sub SplitStatements() 
    Dim NoOfStatements 

    With Sheet1 
     NoOfStatements = Len(.Cells(1, 1)) - Len(Replace(.Cells(1, 1), ";", "")) 
     .Range(.Cells(2, 1), .Cells(2, NoOfStatements + 1)) = Split(.Cells(1, 1), ";") 
    End With 
End Sub 

enter image description here

更新:完整的解决方案

Sub SplitSQLStatements() 
    Dim intF As Integer 
    Dim vSql() As String, strSql As String 
    Dim NoOfStatements As Long 

    intF = FreeFile() 
    ' Set this to your .sql file path 
    Open "SQLDUMPFILEPATH" For Input As #intF 
    strSql = Input(LOF(intF), #intF) 
    Close intF 
    vSql = Split(strSql, ";") 

    With Sheet1 
     NoOfStatements = UBound(vSql) + 1 
     .Range(.Cells(2, 1), .Cells(2, NoOfStatements)) = vSql 
    End With 
End Sub 
+0

如果你有任何问题只是在这里ping我 – Tom

+0

我可以使用和理解你的代码很好,我有类似于上述做同样的事情,它只是拉动文本从一个文件,我没有线索! –

+0

这是一个答案,我给了一段时间做类似的[链接](http://stackoverflow.com/questions/37422598/converting-sql-insert-table-file-to-excel/37434013#37434013)。 for循环就是为了清除一些数据。删除该部分并将该阵列打印到您的范围 – Tom