Ok, now for the answer(s).

 Quote:
Is it possible to have kix open a specific excel workbook/sheet


Yes, try to steal code from one of my admin scripts that logs to an excel file

 Code:
function WriteExcel()
	dim $xl, $Name
	$header = "Server","Ip-Address","Distribution State","Installation State"
	$xl = createobject("excel.application")
	if not @error
		$ = $xl.Workbooks.Add
		$xl.Range("A1:D1").Value = $header
		$xl.Range("A1:D1").Font.Bold = 1
		$xl.Range("A1:D1").Orientation = 90
		$ = $xl.Range("A1:D1").AutoFilter
		for $i = 0 to ubound($srv)
			$xl.Range("A"+($i+2)+":D"+($i+2)+"").Value = $srv[$i]
			if $srv[$i][4] <> '-'
				$comment = $xl.Range("C"+($i+2)).AddComment($srv[$i][4])
				$comment.shape.textframe.autosize = 1
			endif
			if $srv[$i][5] <> '-'
				$comment = $xl.Range("D"+($i+2)).AddComment($srv[$i][5])
				$comment.shape.textframe.autosize = 1
			endif
		next
		$xl.Range("A1:B1").Cells.ColumnWidth = 15
		$xl.Range("C1:D1").Cells.ColumnWidth = 8
		$xl.Range("A1:D1").EntireColumn.HorizontalAlignment = 3
		$xl.Range("B2:B300").HorizontalAlignment = 1
		$xl.ActiveSheet.Name = "Deploy SP4 Status"
		$ = $xl.Range("A2").Activate
		$xl.ActiveWindow.FreezePanes = 1
		$ = $xl.ActiveWorkbook.SaveAs("$Log")
		$xl.UserControl = 1
		$bye = $xl.quit
	else
		exit(0)
	endif
	$WriteExcel = 1
endfunction


[hint: try with $ = $xl.Workbooks.Open("Path\file.xls") or something]


 Quote:

... and refresh the data that is currently manually refreshed via an ODBC link that has been setup within the workbook?


Dunno exactly, but if you find something in the Object Catalog of the Visual Basic Editor built into Excel (ALT+F11) that seem to fit, just try.
At least this is how I found most of the things I needed to automate Excel files ;\)
_________________________