以下的代码是这一过程的实现,要把它放入Excel的宏中,并添加按钮到菜单栏。效果是在选择表格区域后点击按钮,会弹出含有LaTeX表格代码的窗口,一个窗口显示不下的话,点击确定后还会有下一个窗口显示,将窗口中的文字复制到LaTeX文件中,就可以编译啦~
Sub textablebutton()
Dim tex As String
Dim r As range
Set r = Selection
Dim x As Integer
Dim y As Integer
x = r.Rows.Count
y = r.Columns.Count
Dim i As Integer
Dim j As Integer
tex = "\begin{table}[h]" & vbLf _
& "\centering" & vbLf _
& "\caption{table caption}" & vbLf _
& "\resizebox{.5\textwidth}{!}{" & vbLf _
& "\begin{tabular}{"
For j = 1 To y - 1
tex = tex & "l|"
Next j
tex = tex & "l}" _
& vbLf & vbTab & "\hline" _
& vbLf
For j = 1 To y - 1
tex = tex & vbTab & r.Cells(1, j) & vbTab & "&"
Next j
tex = tex & vbTab & r.Cells(1, y) & vbTab & "//" _
& vbLf & vbTab & "\hline"
For i = 2 To x
tex = tex & vbLf & vbTab
For j = 1 To y - 1
tex = tex & r.Cells(i, j) & vbTab & "&" & vbTab
Next j
tex = tex & r.Cells(i, y) & vbTab & "//"
Next i
tex = tex & vbLf _
& vbTab & "\hline" & vbLf _
& "\end{tabular}}" & vbLf _
& "\label{tab:1}\cite{} explanation of the table." & vbLf _
& "\end{table}"
' Msgbox 1024 Character Limit
x = Int(Len(tex) / 1000) - ((Len(tex) / 1000) > 0) ' ceiling, true = -1
For i = 0 To x - 1
MsgBox Mid(tex, 1000 * i + 1, 1000)
Next i
End Sub
同样,可以在
github上找到这段代码。