vb編程excel表格怎么用
發(fā)布時(shí)間:2025-08-17 | 來(lái)源:互聯(lián)網(wǎng)轉(zhuǎn)載和整理
1.用vb怎么做excel表格
EXCEL函數(shù)公式直接操作的是數(shù)組,完全可以達(dá)到循環(huán)的目的,可以理解為是封裝了的循環(huán)函數(shù),下面舉兩個(gè)例子來(lái)說(shuō)明:
問(wèn)題1: 條件求和 公式SUMIF,求序號(hào)大于3的數(shù)據(jù)的和。
a. 用函數(shù)公式就非常簡(jiǎn)單在C2單元格輸入=SUMIF(A2:A6,">3",B2:B6)就能行到結(jié)果42
b. 如果用VBA就復(fù)雜多了,代碼如下:
set sh = ActivateSheetsum = 0 # 保存求和的結(jié)果For i = 2 to 6 If sh.cells(i,1)>3 Then sum = sum + sh.cells(i,2) End ifNext i
問(wèn)題2:條件查找公式VLOOKUP,依次把B列的名字在A列中查找,如果找到就標(biāo)記為TRUE,如果沒(méi)有找到就標(biāo)記為FALSE.
a. 函數(shù)就非常簡(jiǎn)單了,只需要在C2輸入公式=IF(ISERROR(VLOOKUP(B2,A:A,1,FALSE)),FALSE,TRUE),然后下拉下C4
b. VBA代碼就比較復(fù)雜了,如下:
set sh = ActivateSheetFor i=2 to 4 isexist = FALSE For j=2 to 4 If sh.cells(i,2) = sh.cells(j,1) Then isexist = TRUE End If Next j sh.cells(i,3) = isexistNext i
2.Excel中的VB控件如何運(yùn)用?
使用表格數(shù)據(jù)(格式):
Msgbox Sheet1.Range("A1").Value
其中,Sheet1可以替換為Sheets("工作簿名稱")
Range("A1")可以替換為Cells(1,1) '方便循環(huán)
Value的意思是引用單元格的最終結(jié)果。單元格有公式的時(shí)候必須用這個(gè)來(lái)引用結(jié)果。
如果用 FormulaR1C1 或者 Formula 的話會(huì)出來(lái)這個(gè)單元格的公式(沒(méi)公式的話效果一樣)。。。也挺有意思的??梢栽囋嚳?。
賦值要用FormulaR1C1或者Formula,value是只讀的。
3.如何運(yùn)用VB與EXCEL
1.Alt+F11,將你設(shè)計(jì)的計(jì)算器VB代碼輸入 2.Application.Selection是你當(dāng)前選中的Excel單元格 3.假設(shè)計(jì)算結(jié)果保存在TextBox1中,則Application.Selection=TextBox1.Text 下面是個(gè)簡(jiǎn)單示例(只用了1、2、3、+、=、CE幾個(gè)鍵,按“=”后計(jì)算結(jié)果自動(dòng)保存到選定的單元格內(nèi)) Dim A As Integer Private Sub CommandButton1_Click() TextBox1.Text = TextBox1.Text + "2" End Sub Private Sub CommandButton2_Click() A = A + Val(TextBox1.Text) TextBox1.Text = "" End Sub Private Sub CommandButton3_Click() TextBox1.Text = A + Val(TextBox1.Text) Application.Selection = TextBox1.Text End Sub Private Sub CommandButton4_Click() TextBox1.Text = TextBox1.Text + "3" End Sub Private Sub CommandButton5_Click() TextBox1.Text = TextBox1.Text + "1" End Sub Private Sub CommandButton6_Click() A = 0 TextBox1.Text = "" End Sub 。
4.用VB制作excel表格
添加引用 Microsoft Excel 12.0 Object Library (視你的office版本不同有所差異)
然后就可以用這個(gè)來(lái)編程啦
Dim xlapp As Excel.Application '代表excel程序
Dim wkBook As Excel.Workbook '代表excelworkbook(也就是excel工作簿文件 .xls .xlsx)
Dim wkSheet As Excel.Worksheet '代表excel的工作頁(yè)
xlapp.Application.EnableEvents = False '禁止宏等提示的運(yùn)行
Set wkBook = xlapp.Workbooks.Open(ExcelFileName)'wkBook對(duì)象,把ExcelFileName替換為你的真實(shí)文件 比如 app.path & "\" & "百家姓.xls"
Set wkSheet = wkBook.Worksheets(1) '選中某個(gè)sheet用工作頁(yè)名字(Sheet1,Sheet2。) or 序號(hào)
5.vb如何調(diào)用excel函數(shù)
1. 單元格地址,在VBA公式中,應(yīng)該用:range("f1:f400")例:=sum(f1:f400)寫成 =application.sum(range("f1:f400")) worksheetfunction是可以省略的。
初學(xué)時(shí)不省最好,因?yàn)橛行┖瘮?shù)在VBA中是不可用的,不省它,就會(huì)提示你有哪些函數(shù)可用。offset是表示區(qū)域的。
在VBA寫公式的時(shí)候,可以用resize來(lái)代替另:以上功能,建議不要用工作表公式來(lái)寫。2. 在VB中要想調(diào)用Excel,需要打開(kāi)VB編程環(huán)境“工程”菜單中的“引用”項(xiàng)目,并選取項(xiàng)目中的“Microsoft Excel 11.0 object library”項(xiàng)。
由于你的Excel版本不同,所以這個(gè)選項(xiàng)的版本號(hào)也是不同的。3. 因?yàn)镋XCEL是以層次結(jié)構(gòu)組織對(duì)象的,其對(duì)象模型中含有許多不同的對(duì)象元素。
第一層:Application對(duì)象,即Excel本身; 第二層:workbooks對(duì)象集,指Excel的工作簿文件 第三層:worksheets對(duì)象集,表示的是Excel的一個(gè)工作表; 第四層:Cells和Range對(duì)象,指向Excel工作表中的單元格。 新建立一個(gè)VB的工程,先放一個(gè)button,名稱為Excel_Out。
先定義好各層: Dim xlapp As Excel.Application 'Excel對(duì)象 Dim xlbook As Excel.Workbook '工作簿 Dim xlsheet As Excel.Worksheet '工作表 4. 我們打算做的是:打開(kāi)/新建一個(gè)excel,在其中對(duì)某工作表的一些單元格修改其值,然后另存為test.xls文件。 Private Sub Excel_Out_Click() Dim i, j As Integer Set xlapp = CreateObject("Excel.Application") '創(chuàng)建EXCEL對(duì)象 'Set xlbook = xlapp.Workbooks.Open(App.Path & "\test.xls") '打開(kāi)已經(jīng)存在的test.xls工件簿文件 Set xlbook = xlapp.Workbooks.Add '新建EXCEL工件簿文件 'xlbook.RunAutoMacros (xlAutoOpen) '運(yùn)行EXCEL啟動(dòng)宏 'xlbook.RunAutoMacros (xlAutoClose) '運(yùn)行EXCEL關(guān)閉宏 xlapp.Visible = True '設(shè)置EXCEL對(duì)象可見(jiàn)(或不可見(jiàn)) Set xlsheet = xlbook.Worksheets(1) '設(shè)置活動(dòng)工作表'' ''~~~當(dāng)前工作簿的第一頁(yè),這里也可以換成“表名” '下面就是簡(jiǎn)單的在一些單元格內(nèi)寫入數(shù)字 For i = 7 To 15 For j = 1 To 10 xlsheet.Cells(i, j) = j '當(dāng)前工作簿第一頁(yè)的第I行第J列 Next j Next i With xlsheet '設(shè)置邊框?yàn)槭菍?shí)線 .Range(.Cells(7, 1), .Cells(28, 29)).Borders.LineStyle = xlContinuous End With '引用當(dāng)前工作簿的第二頁(yè) Set xlsheet = xlapp.Application.Worksheets(2) xlsheet.Cells(7, 2) = 2008 '在第二頁(yè)的第7行第2列寫入2008 xlsheet.SaveAs App.Path & "\test.xls" '按指定文件名存盤 'Set xlbook = xlapp.Application.Workbooks.Add '新建一空白工作簿 xlapp.Quit '結(jié)束EXCEL對(duì)象'xlapp.Workbooks.Close Set xlapp = Nothing '釋放xlApp對(duì)象 End Sub 5, 這樣,我們就可以簡(jiǎn)單的對(duì)excel文件進(jìn)行操作了。
下面再放一些我從網(wǎng)上查到的資料吧,還挺有用的: 1.創(chuàng)建Excel對(duì)象 eole=CREATEOBJECT(′Excel.application′) 2.添加新工作簿 eole.Workbooks.add 3.設(shè)置第3個(gè)工作表為激活工作表 eole.Worksheets(〃sheet3〃).Activate 4.打開(kāi)指定工作簿 eole.Workbooks.Open(〃c:\temp\ll.xls〃) 5.顯示Excel窗口 eole.visible=.t. 6.更改Excel標(biāo)題欄 eole.Caption=〃VB應(yīng)用程序調(diào)用Microsoft Excel〃 7.給單元格賦值 eole.cells(1,4).value=XM(XM為數(shù)據(jù)庫(kù)字段名) 8.設(shè)置指定列的寬度(單位:字符個(gè)數(shù)) eole.ActiveSheet.Columns(1).ColumnWidth=5 9.設(shè)置指定行的高度(單位:磅) eole.ActiveSheet.Rows(1).RowHeight=1/0.035 (設(shè)定行高為1厘米,1磅=0.035厘米) 10.在第18行之前插入分頁(yè)符 eole.Worksheets(〃Sheet1〃).Rows(18).PageBreak=1 11.在第4列之前刪除分頁(yè)符 eole.ActiveSheet.Columns(4).PageBreak=0 12.指定邊框線寬度(Borders參數(shù)如下) ole.ActiveSheet.Range(〃b3:d3〃).Borders(2).Weight=3 13.設(shè)置四個(gè)邊框線條的類型 eole.ActiveSheet.Range(〃b3:d3〃).Borders(2).LineStyle=1 (其中Borders參數(shù):1-左、2-右、3-頂、4-底、5-斜、6-斜/;LineStyle值:1與7-細(xì)實(shí)、2-細(xì)虛、4-點(diǎn)虛、9-雙細(xì)實(shí)線) 14.設(shè)置頁(yè)眉 eole.ActiveSheet.PageSetup.CenterHeader=〃報(bào)表1〃 15.設(shè)置頁(yè)腳 eole.ActiveSheet.PageSetup.CenterFooter=〃第&P頁(yè)〃 16.設(shè)置頁(yè)眉到頂端邊距為2厘米 eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035 17.設(shè)置頁(yè)腳到底邊距為3厘米 eole.ActiveSheet.PageSetup.FooterMargin=3/0.035 18.設(shè)置頂邊距為2厘米 eole.ActiveSheet.PageSetup.TopMargin=2/0.035 19.設(shè)置底邊距為4厘米 eole.ActiveSheet.PageSetup.BottomMargin=4/0.035 20.設(shè)置左邊距為2厘米 veole.ActiveSheet.PageSetup.LeftMargin=2/0.035 21.設(shè)置右邊距為2厘米 eole.ActiveSheet.PageSetup.RightMargin=2/0.035 22.設(shè)置頁(yè)面水平居中 eole.ActiveSheet.PageSetup.CenterHorizontally=.t. 23.設(shè)置頁(yè)面垂直居中 eole.ActiveSheet.PageSetup.CenterVertically=.t. 24.設(shè)置頁(yè)面紙張大小(1-窄行8?5?11 39-寬行14?11) eole.ActiveSheet.PageSetup.PaperSize=1 25.打印單元格網(wǎng)線 eole.ActiveSheet.PageSetup.PrintGridlines=.t. 26.拷貝整個(gè)工作表 eole.ActiveSheet.UsedRange.Copy 27.拷貝指定區(qū)域 eole.ActiveSheet.Range(〃A1:E2。
6.vb編程中怎么使用excel表格中的數(shù)據(jù)
讀出。
里面行數(shù)為你要讀取的行數(shù)。
Dim xlApp As New Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim RNG As Excel.Range Private Sub Command1_Click() Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(App.Path & "\xxx.xls") for n =1 to 行數(shù) list1.additem xlSheet.Cells(n, 1) next xlBook.Close (True) xlApp.Quit Set xlApp = Nothing End Sub 寫入大致相同就是循環(huán)里面改一下。
for n =1 to list1.listcount xlSheet.Cells(n, 1)=list.list(n) next。