小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用VBA操作Word表格

 勇增智慧 2013-11-16

一、生成表格

    Private Sub CreateTable(mRows As Integer, mColumns) 
    Dim mRange As Range

    Set mRange = ActiveDocument.Range 
    mRange.SetRange Start:=ActiveDocument.Range.End, End:=ActiveDocument.Range.End 
    Set SelfGenTable = ActiveDocument.Tables.Add(Range:=mRange, NumRows:=mRows, NumColumns:=mColumns)

    End Sub

    上面過程的作用是在活動文檔的末尾插入一個(gè)mRows行,mColumns列的表格。

    二、在讀寫表格中的單元格

    寫入單元格使用如下代碼:

    TableObject.Cell(Row:=curRow, Column:=curColumn).Range.InsertAfter "文本"

    上面代碼的做用時(shí)在curRow行,curColumn列處插入字符“文本”。

    其中TableObject為表格對象,如果使用了生成表格中的例子,那么可以用SelfGenTable來替代TableObject。

    三、調(diào)整單元格對齊方式

    水平對齊設(shè)置

    Selection.ParagraphFormat.Alignment=水平對齊常數(shù)(具體的常數(shù)可以查看幫助文件的說明)

    如何選擇單元格?

  1. 選定特定單元格 
    TableObject.Cell(Row:=1,Column:=1).Select’選定單元格1,1
  2. 選定行 
    TableObject.Rows(i).Select’選定第i行
  3. 選定列 
    TableObject.Columns(i).Select’選定第i列
  4. 選定整個(gè)表格 
    TableObject.Select

首先執(zhí)行表格元素選擇程序,然后再使用Selection.ParagraphFormat.Alignment設(shè)置對齊方式。

垂直對齊方式

Selection.Cells.VerticalAlignment=垂直對齊常數(shù)

也是首先選擇表格元素,可以使單個(gè)單元格,單個(gè)行、單個(gè)列或者整個(gè)表格。似乎也可以同時(shí)選擇多個(gè)單元格、多個(gè)行、多個(gè)列,有興趣的朋友可以自行尋找答案。

四、設(shè)置表格邊線類型

下面的代碼對整個(gè)表格的所有邊線設(shè)置成細(xì)實(shí)線:

SelfGenTable.Select 
With Selection 
    .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle 
    .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle 
    .Borders(wdBorderRight).LineStyle = wdLineStyleSingle 
    .Borders(wdBorderTop).LineStyle = wdLineStyleSingle 
    .Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle 
    .Borders(wdBorderVertical).LineStyle = wdLineStyleSingle 
End With

同樣是對Selection進(jìn)行設(shè)置,所以可以依照上面的方法對特定的單元格、行或者列的邊線樣式進(jìn)行分別設(shè)置,這里就不再列舉了。

五、調(diào)整表格尺寸

下面的代碼對一個(gè)六列的表格設(shè)置寬度,寬度采用百分比寬度,從左至右的寬度百分比依次為:30,10,10,30,10,10:

Dim WidthP(0 To 2) As Integer

Dim j As Integer

dim i as Integer

WidthP(0) = 30 
WidthP(1) = 10 
WidthP(2) = 10

j = 0 
For i = 0 To SelfGenTable.Columns.Count - 1 
    If j > 2 Then 
        j = 0 
    End If 
    SelfGenTable.Columns(i + 1).PreferredWidthType = wdPreferredWidthPercent 
    SelfGenTable.Columns(i + 1).PreferredWidth = WidthP(j) 
    j = j + 1 
Next

上面的代碼通過Columns的PreferredWidthType屬性設(shè)置表格列寬的形式,這里選擇的是百分比列寬,可以根據(jù)自己的實(shí)際情況選擇其他列寬形式,然后再設(shè)置相應(yīng)的數(shù)值。

表格的行高請讀者以此類推(實(shí)際上我還沒設(shè)置過行高,都用自動生成的就夠了)

===============================================

編寫操作表格的程序時(shí)需要注意,Word表格的行列起始值為1,而不是0。

===============================================

下面是一個(gè)拆分字符串的代碼,當(dāng)插入表格的文本過長時(shí),可以設(shè)定一個(gè)長度,超過這個(gè)長度就進(jìn)行回車,這樣保證在設(shè)定的單元格寬度內(nèi)能夠?qū)懴麻L文本。單元格的高度會自動調(diào)整以使文本能完整的顯示,這也就是我為什么沒有通過代碼設(shè)置單元格高度的原因。

Private Function FoldText(mLen As Integer, mStr As String) As String 
'折疊文字函數(shù),mLen為折疊前的文字長度,mStr為文字的內(nèi)容 
Dim i As Integer 
Dim tmpStr(0 To 1) As String '臨時(shí)字符串 
If Len(mStr) > mLen Then 
    Do While Len(mStr) > mLen 
        tmpStr(0) = Left(mStr, mLen) 
        mStr = Right(mStr, Len(mStr) - mLen) 
        tmpStr(1) = tmpStr(1) + tmpStr(0) + vbCrLf 
    Loop 
    tmpStr(1) = tmpStr(1) + mStr 
Else 
    tmpStr(1) = mStr 
End If

FoldText = tmpStr(1)

End Function

================================================

以上內(nèi)容是學(xué)習(xí)Word VBA幫助和網(wǎng)絡(luò)上其他朋友的心得寫出來了,希望能對同樣初入Word VBA編程的朋友有所幫助。如果有什么問題,歡迎留言探討。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多