Sub generateSQLInsert()
  'Loop on current scheet and generate sql INSERT based on column names as columns an sheet name as table
  ' Will create one statement per line aka  INSERT INTO mytable(col1,col2,...) VALUES(val1,val2,...)
  ' Author: Jean-Baptiste Heren - 29-06-2010 - http://blog.jbheren.com
 
  Dim tableName As String 'tablename extracted from first row of each column
  Dim filePath As String
  Dim slashPosition As Integer
  Dim pathOnly As String
 
  Dim columnsSQL As String ' will contain the insert into table (col1,col2,...) statement
  Dim dataSQL As String    ' will contain the values (val1,val2,...) statement
  Dim separator As String
 
  Dim myRow As Integer 'Row counter
  Dim myCol As Integer 'Column counter
 
  'set Tablename from sheet name
  tableName = ActiveSheet.Name
 
  ' get current excel file Path
  filePath = ThisWorkbook.FullName
  slashPosition = InStrRev(filePath, "\")
  pathOnly = Left(filePath, slashPosition)
 
  MyFile = pathOnly + tableName + ".sql"
 
  'get column names from first row
  myColInput = InputBox("What column to START on ?")
  myCol = myColInput
  myRow = 1
  columnsSQL = "INSERT INTO " + tableName + " ("
  separator = " "
 
  Do Until ActiveSheet.Cells(myRow, myCol) = "" 'Loop until you find a blank.
    
    columnsSQL = columnsSQL + separator + Trim(ActiveSheet.Cells(myRow, myCol))
    separator = ", "
    
    myCol = myCol + 1 ' Move to next column
  Loop
  columnsSQL = columnsSQL + ") "
 
  'get column values from second row
  myRow = 2
  myCol = myColInput
 
  'set and open file for output
  fnum = FreeFile()
  Open MyFile For Output As fnum
 
 
  Do Until ActiveSheet.Cells(myRow, myCol) = "" 'Loop on rows until blank.
    
    dataSQL = "VALUES ("
    separator = " "
    
      Do Until ActiveSheet.Cells(myRow, myCol) = "" 'Loop on columns until blank.
        dataSQL = dataSQL + separator + "'" + Trim(CStr(ActiveSheet.Cells(myRow, myCol))) + "'"
        separator = ", "
        myCol = myCol + 1
      Loop
    
    dataSQL = dataSQL + ");"
    
    myCol = myColInput ' Return to specifiedcolumn
    myRow = myRow + 1 ' Move to next row
    
    Print #fnum, columnsSQL + dataSQL
  Loop
 
  ' Close the file
  Close #fnum
 
End Sub