您的位置:首页 > 编程语言 > VB

将excel中的表格转化为LaTeX表格

2018-03-01 08:08 609 查看
以下的代码是这一过程的实现,要把它放入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上找到这段代码。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  VBA LaTeX