主頁(yè) > 知識(shí)庫(kù) > VBS操作Excel常見方法

VBS操作Excel常見方法

熱門標(biāo)簽:網(wǎng)站文章發(fā)布 銀行業(yè)務(wù) 服務(wù)器配置 呼叫中心市場(chǎng)需求 智能手機(jī) 美圖手機(jī) 檢查注冊(cè)表項(xiàng) 鐵路電話系統(tǒng)

dim oExcel,oWb,oSheet
Set oExcel= CreateObject("Excel.Application")
Set oWb = oExcel.Workbooks.Open("E:\其他\新裝電話表.xls")
Set oSheet = oWb.Sheets("Sheet1")
MsgBox oSheet.Range("B2").Value '#提取單元格B2內(nèi)容
'.....
3、如果是XP系統(tǒng),可以使用如下代碼
Dim objFileDlg
Set objFileDlg = CreateObject("UserAccounts.CommonDialog")
objFileDlg.Filter = "Excel File (*.xls) |*.xls"
If objFileDlg.ShowOpen Then
msgbox "您選擇的文件是:" objFileDlg.FileName vbCrLf
End If

VBS控制Excel的一些常見方法:
(一) 使用動(dòng)態(tài)創(chuàng)建的方法
首先創(chuàng)建 Excel 對(duì)象,使用ComObj:
oExcel = CreateObject( "Excel.Application" )
1) 顯示當(dāng)前窗口:
oExcel.Visible = True
2) 更改 Excel 標(biāo)題欄:
oExcel.Caption = "應(yīng)用程序調(diào)用 Microsoft Excel"
3) 添加新工作簿:
oExcel.WorkBooks.Add
4) 打開已存在的工作簿:
oExcel.WorkBooks.Open( "C:\Excel\Demo.xls" )
5) 設(shè)置第2個(gè)工作表為活動(dòng)工作表:
oExcel.WorkSheets(2).Activate

oExcel.WorksSheets( "Sheet2" ).Activate
6) 給單元格賦值:
oExcel.Cells(1,4).Value = "第一行第四列"
7) 設(shè)置指定列的寬度(單位:字符個(gè)數(shù)),以第一列為例:
oExcel.ActiveSheet.Columns(1).ColumnsWidth = 5
8) 設(shè)置指定行的高度(單位:磅)(1磅=0.035厘米),以第二行為例:
oExcel.ActiveSheet.Rows(2).RowHeight = 1/0.035 ' 1厘米
9) 在第8行之前插入分頁(yè)符:
oExcel.WorkSheets(1).Rows(8).PageBreak = 1
10) 在第8列之前刪除分頁(yè)符:
oExcel.ActiveSheet.Columns(4).PageBreak = 0
11) 指定邊框線寬度:
oExcel.ActiveSheet.Range( "B3:D4" ).Borders(2).Weight = 3
1-左 2-右 3-頂 4-底 5-斜( \ ) 6-斜( / )
12) 清除第一行第四列單元格公式:
oExcel.ActiveSheet.Cells(1,4).ClearContents
13) 設(shè)置第一行字體屬性:
oExcel.ActiveSheet.Rows(1).Font.Name = "隸書"
oExcel.ActiveSheet.Rows(1).Font.Color = clBlue
oExcel.ActiveSheet.Rows(1).Font.Bold = True
oExcel.ActiveSheet.Rows(1).Font.UnderLine = True
14) 進(jìn)行頁(yè)面設(shè)置:
a.頁(yè)眉:
oExcel.ActiveSheet.PageSetup.CenterHeader = "報(bào)表演示"
b.頁(yè)腳:
oExcel.ActiveSheet.PageSetup.CenterFooter = "第P頁(yè)"
c.頁(yè)眉到頂端邊距2cm:
oExcel.ActiveSheet.PageSetup.HeaderMargin = 2/0.035
d.頁(yè)腳到底端邊距3cm:
oExcel.ActiveSheet.PageSetup.HeaderMargin = 3/0.035
e.頂邊距2cm:
oExcel.ActiveSheet.PageSetup.TopMargin = 2/0.035
f.底邊距2cm:
oExcel.ActiveSheet.PageSetup.BottomMargin = 2/0.035
g.左邊距2cm:
oExcel.ActiveSheet.PageSetup.LeftMargin = 2/0.035
h.右邊距2cm:
oExcel.ActiveSheet.PageSetup.RightMargin = 2/0.035
i.頁(yè)面水平居中:
oExcel.ActiveSheet.PageSetup.CenterHorizontally = 2/0.035
j.頁(yè)面垂直居中:
oExcel.ActiveSheet.PageSetup.CenterVertically = 2/0.035
k.打印單元格網(wǎng)線:
oExcel.ActiveSheet.PageSetup.PrintGridLines = True
15) 拷貝操作:
a.拷貝整個(gè)工作表:
oExcel.ActiveSheet.Used.Range.Copy
b.拷貝指定區(qū)域:
oExcel.ActiveSheet.Range( "A1:E2" ).Copy
c.從A1位置開始粘貼:
oExcel.ActiveSheet.Range.( "A1" ).PasteSpecial
d.從文件尾部開始粘貼:
oExcel.ActiveSheet.Range.PasteSpecial
16) 插入一行或一列:
a. oExcel.ActiveSheet.Rows(2).Insert
b. oExcel.ActiveSheet.Columns(1).Insert
17) 刪除一行或一列:
a. oExcel.ActiveSheet.Rows(2).Delete
b. oExcel.ActiveSheet.Columns(1).Delete
18) 打印預(yù)覽工作表:
oExcel.ActiveSheet.PrintPreview
19) 打印輸出工作表:
oExcel.ActiveSheet.PrintOut
20) 工作表保存:
if not oExcel.ActiveWorkBook.Saved then
oExcel.ActiveSheet.PrintPreview
21) 工作表另存為:
oExcel.SaveAs( "C:\Excel\Demo1.xls" )
22) 放棄存盤:
oExcel.ActiveWorkBook.Saved = True
23) 關(guān)閉工作簿:
oExcel.WorkBooks.Close
24) 退出 Excel:
oExcel.Quit
(二) 使用VBS 控制Excle二維圖
1)選擇當(dāng)?shù)谝粋€(gè)工作薄第一個(gè)工作表
set oSheet=oExcel.Workbooks(1).Worksheets(1)
2)增加一個(gè)二維圖
achart=oSheet.chartobjects.add(100,100,200,200)
3)選擇二維圖的形態(tài)
achart.chart.charttype=4
4)給二維圖賦值
set series=achart.chart.seriescollection
range="sheet1!r2c3:r3c9"
series.add range,true
5)加上二維圖的標(biāo)題
achart.Chart.HasTitle=True
achart.Chart.ChartTitle.Characters.Text=" Excle二維圖"
6)改變二維圖的標(biāo)題字體大小
achart.Chart.ChartTitle.Font.size=18
7)給二維圖加下標(biāo)說(shuō)明
achart.Chart.Axes(xlCategory, xlPrimary).HasTitle = True
achart.Chart.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "下標(biāo)說(shuō)明"
8)給二維圖加左標(biāo)說(shuō)明
achart.Chart.Axes(xlValue, xlPrimary).HasTitle = True
achart.Chart.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "左標(biāo)說(shuō)明"
9)給二維圖加右標(biāo)說(shuō)明
achart.Chart.Axes(xlValue, xlSecondary).HasTitle = True
achart.Chart.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "右標(biāo)說(shuō)明"
10)改變二維圖的顯示區(qū)大小
achart.Chart.PlotArea.Left = 5
achart.Chart.PlotArea.Width = 223
achart.Chart.PlotArea.Height = 108

如何用vbs把excel的單元格數(shù)據(jù)寫到txt

復(fù)制代碼 代碼如下:

If WScript.Arguments.Count > 0 Then Filename = WScript.Arguments(0)
Set a = CreateObject("Excel.Application")
If Filename = "" Then
Filename = a.GetOpenFilename("Excel Files (*.xls), *.xls")
If VarType(Filename) = vbBoolean Then
MsgBox "Excel2Txt用于將Excel文件的每個(gè)Sheet保存為一個(gè)文本文件。" vbCr vbLf vbCr vbLf "用法: Excel2Txt filename.xls 或在對(duì)話框中打開Excel文件。"
WScript.Quit
End If
End If
Set w = a.Workbooks.Open(Filename)
n = Replace(Replace(w.Name, ".xls", ""), ".XLS", "")
a.DisplayAlerts = False
For Each s In w.Sheets
s.SaveAs w.Path "\" n "_" s.Name ".txt", 20
Next
a.Quit

把以上代碼存為Excel2Txt.vbs雙擊執(zhí)行就行了

VBS操作Excel
復(fù)制代碼 代碼如下:

Set objExcel = CreateObject("Excel.Application") '建一個(gè)exel對(duì)象
Set objWorkbook = objExcel.Workbooks.Open _
("E:\DOC\Hewl\領(lǐng)域模型.xls") '打開文件
strToBeWrited = "-----------------------------------" vbcrlf _
"-- Generated by ScriptGenerator ---" vbcrlf _
"-----------------------------------" vbcrlf vbcrlf
Count = objWorkbook.WorkSheets.Count '取sheet數(shù)量
Set my = CreateObject("Excel.Sheet") '新建sheet對(duì)象
For Each my In objWorkbook.WorkSheets '遍歷sheet
If my.Name = "目錄" or my.Name = "SecondHandHouse" Then
'do nothing
Else
'Wscript.Echo my.Name '獲得sheet名字
'Wscript.Echo my.Rows.Count
'strToBeWrited = strToBeWrited "create table " my.Name vbcrlf
strToBeWrited = strToBeWrited "/*==============================================================*/" vbcrlf
strToBeWrited = strToBeWrited "/* Table: " my.Name " */" vbcrlf
strToBeWrited = strToBeWrited "/*==============================================================*/" vbcrlf
strToBeWrited = strToBeWrited "create table " my.Name " (" vbcrlf
rowNum = 3
Do Until my.Cells(rowNum,1).Value = ""
'Wscript.Echo "sAMAccountName: " my.Cells(rowNum, 2).Value
strToBeWrited = strToBeWrited " " my.Cells(rowNum,2).Value " " my.Cells(rowNum,3).Value " not null"
If not my.Cells(rowNum,9).Value = "" Then
strToBeWrited = strToBeWrited " default " my.Cells(rowNum,9).Value
End If
strToBeWrited = strToBeWrited "," vbcrlf
rowNum = rowNum + 1
Loop
strToBeWrited = strToBeWrited " constraint PK_" my.Name " primary key (id)" vbcrlf
strToBeWrited = strToBeWrited ")" vbcrlf
End If
strToBeWrited = strToBeWrited vbcrlf
Next
For Each my In objWorkbook.WorkSheets '遍歷sheet
If my.Name = "目錄" or my.Name = "SecondHandHouse" Then
'do nothing
Else

strToBeWrited = strToBeWrited " constraint PK_" my.Name " primary key (id)" vbcrlf
strToBeWrited = strToBeWrited ")" vbcrlf
End If
strToBeWrited = strToBeWrited vbcrlf
Next
'寫文件
set fs =createobject("scripting.filesystemobject")
set f = fs.opentextfile("E:\DOC\Hewl\dbscript.sql",2, true)
'Wscript.Echo strToBeWrited
f.write strToBeWrited
f.close
Set f = nothing
Set fs = nothing
objExcel.Quit '結(jié)束退出

復(fù)制代碼 代碼如下:

Dim Excel
Set Excel = CreateObject("Excel.Application")
'不顯示提示信息,這樣保存的時(shí)候就不會(huì)提示是否要覆蓋原文件
Excel.DisplayAlerts=FALSE
'調(diào)用EXCEL文件的時(shí)候不顯示
Excel.visible=FALSE
Excel.workbooks.open("D:\test.XLS")
'將sheet1設(shè)置為活動(dòng)sheet
Excel.workbooks(1).activate
'插入行,這條我找MSDN都沒找到,最后亂試試出來(lái)的
Excel.ActiveSheet.rows(1).insert
Excel.ActiveSheet.Cells(1,1).Value = Date
Excel.ActiveSheet.Cells(1,2).Value = "row1"
Excel.ActiveSheet.Cells(1,3).Value = "comment1"
Excel.ActiveSheet.rows(2).insert
Excel.ActiveSheet.Cells(2,1).Value = Date
Excel.ActiveSheet.Cells(2,4).Value = "row2"
Excel.ActiveSheet.Cells(2,7).Value = "comment2"
Excel.save
Excel.quit
Set Excel = Nothing
Excel.ActiveSheet.rows(1).insert

不用找MSDN,在EXCEL幫助中就能找到,看“編程信息”/“Microsoft Excel Visual Basic 參考”/“屬性”/“Q-R”/“Rows 屬性”的介紹,和“編程信息”/“Microsoft Excel Visual Basic 參考”/“方法”/“I-L”/“Insert 方法”的介紹,就能明白這條語(yǔ)句的語(yǔ)法。
因?yàn)樵贓XCEL的VBA中,“Rows”、“Columns”、“Cells”屬性返回的都是Range對(duì)象,所以對(duì)它們的應(yīng)用可以等同Range對(duì)象的應(yīng)用。
例如:你在EXCEL的VBA編輯器中可以這樣寫
cells(1,1).value="abc"
cells(1,1).wraptext=false
在寫這些語(yǔ)句時(shí),你應(yīng)該注意到,在寫完“cells(1,1).”之后,并沒有彈出應(yīng)該彈出的屬性/方法列表,但是這些語(yǔ)句確實(shí)可以正常運(yùn)行。
我的方法是:在EXCEL中錄制宏,然后在EXCEL的VBA編輯器中修改語(yǔ)句,調(diào)試運(yùn)行無(wú)誤后再粘貼到VBS語(yǔ)句中,進(jìn)行適當(dāng)?shù)男薷摹?/P>
您可能感興趣的文章:
  • 利用phpExcel實(shí)現(xiàn)Excel數(shù)據(jù)的導(dǎo)入導(dǎo)出(全步驟詳細(xì)解析)
  • Python讀寫Excel文件的實(shí)例
  • python中使用xlrd、xlwt操作excel表格詳解
  • js導(dǎo)入導(dǎo)出excel(實(shí)例代碼)
  • PHPExcel讀取Excel文件的實(shí)現(xiàn)代碼
  • asp.net生成Excel并導(dǎo)出下載五種實(shí)現(xiàn)方法
  • Java讀取Excel文件內(nèi)容的簡(jiǎn)單實(shí)例
  • C# 中Excel導(dǎo)入時(shí)判斷是否被占用三種方法

標(biāo)簽:樂山 新疆 沈陽(yáng) 紅河 上海 滄州 長(zhǎng)治 河南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《VBS操作Excel常見方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266