❶ 求一份關於Excel宏編寫的教程(電子版,不要視頻)

我的網路空間里有Excel疑難千尋千解叢書的3本書電子版(操作與技巧、函數與公式、VBA編程與實踐)下載鏈接,可以下載看看
http://hi..com/gouweicao78/blog/item/b1a889cbf105ad57f31fe759.html

❷ excel宏怎麼寫代碼

SubAB比較插入空格()
Dimn%,i%,j%,k%,Arr,ArrOut()
n=Cells(Rows.Count,"A").End(xlUp).Row
IfCells(Rows.Count,"B").End(xlUp).Row>nThenn=Cells(Rows.Count,"B").End(xlUp).Row
Arr=Range(Cells(1,1),Cells(n+1,2))
Arr(n+1,1)="最":Arr(n+1,2)="最"'改成最大的字元。
ReDimArrOut(1To2*n+2,1To2)
i=1:j=1:k=1
Do
IfArr(i,1)<Arr(j,2)ThenArrOut(k,1)=Arr(i,1):ArrOut(k,2)="":i=i+1:k=k+1:Debug.Printi,j,k
IfArr(i,1)>Arr(j,2)ThenArrOut(k,1)="":ArrOut(k,2)=Arr(j,2):j=j+1:k=k+1:Debug.Printi,j,k
IfArr(i,1)=Arr(j,2)ThenArrOut(k,1)=Arr(i,1):ArrOut(k,2)=Arr(j,2):i=i+1:j=j+1:k=k+1:Debug.Printi,j,k
LoopUntil((i>n)And(j>n))
[A1].Resize(k-2,2)=ArrOut
EndSub

❸ excel2010宏vba代碼怎麼編寫

首先,我建了一個演示示例。本文要通過宏實現的功能是將A列中","號之前的文字提取出來.

在Sheet1右鍵,選擇查看代碼

彈出VBA編輯頁面

在Sheet1代碼編輯頁面輸入代碼:
Sub test()Dim i As IntegerFor i = 1 To 50 Step 1       Range("B" & i).Select       ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],FIND("","",RC[-1])-1)"Next
End Sub

輸入完成點擊保存,在彈出的對話框中點擊是。

接著又彈出一個對話框,點確定往下走。其實這兩步可以通過一些設置來避免彈出提示的,我將會在以後的經驗中與大家分享。

然後點擊視圖-宏

選擇查看宏

在宏列表中選擇要執行的宏,點擊執行。

excel工作表中立馬有了變化,我們可以看以B列中完美顯示了A列中「,」之前對應的內容,通過調用宏,我們實現了預定的功能。

❹ 問:excel里怎麼編寫宏代碼實現:

Sub 宏1()
If Cells(4, 15) = 1 Or Cells(4, 15) = 4 Then
Cells(7, 5) = Cells(7, 5) + Cells(7, 18)
Cells(7, 5) = Cells(7, 5) + Cells(7, 18)
『。。。
ElseIf Cells(4, 15) = 2 Or Cells(4, 15) = 3 Then
Cells(7, 5) = Cells(7, 5) - Cells(7, 18)
Cells(7, 5) = Cells(7, 5) - Cells(7, 18)
』。。。
End If
End Sub

❺ excel 宏命令編寫

AF3公式:
=SUM(IF((C2:AD2>60)*ISNUMBER(C2:AD2),(C2:AD2-50)/10*C$37:AD$37))+SUM(IF(ISTEXT(C2:AD2),CHOOSE(FIND(LEFT(C2:AD2),"優良中及不"),4.5,3.5,2.5,1.5,0)*C$37:AD$37))
公式以CTRL+SHIFT+ENTER三鍵結束。
將公式向下復制。
AG3公式:
=SUMPRODUCT((C2:AD2<>"")*C$37:AD$37)
將公式向下復制。
AH3公式:
=IF(AF3="","",AF3/AG3)
向下復制公式。

❻ excel宏編程教程有哪些

一、宏的自學。首先需要明確的是,本文不可能教會您關於宏的所有內容。您需要學會利用"錄制宏"的方法來學習宏:點擊excel" 工具"下拉菜單中"宏"下?quot;錄制新宏",此後可象平時一樣進行有關操作,待完成後停止錄制。然後再點擊"工具"下拉菜單中"宏"下"宏"的"編 輯"選項即可打開剛才所錄制的宏的Visual Basic源程序,並且可以在此時的"幫助"下拉菜單中獲得有關的編程幫助。對錄制宏進行修改不僅可以學習宏的使用,還能大大簡化宏的編寫。

二、基本概念。為了學習excel中的宏,我們需要先了解以下一些基本概念。

1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbook

Workbooks集合包含excel中所有當前打開的excel工作簿,亦即所有打開的excel文件;Workbook對應Workbooks中的成員,即其中的excel文件;ActiveWorkbook代表當前處於活動狀態的工作簿,即當前顯示的excel文件;ThisWorkbook代表其中有Visual Basic代碼正在運行的工作簿。

在具體使用中可用Workbooks(index)來引用Workbook對象,其中index為工作簿名稱或編號;如Workbooks(1)、 Workbooks("年度報表.xls")。而編號按照創建或打開工作簿的順序來確定,第一個打開的工作簿編號為1,第二個打開的工作簿為2……。

2、工作表:Worksheets、Worksheet、ActiveSheet

Worksheets集合包含工作簿中所有的工作表,即一個excel文件中的所有數據表頁;而Worksheet則代表其中的一個工作表;ActiveSheet代表當前處於的活動狀態工作表,即當前顯示的一個工作表。

可用Worksheets(index)來引用Worksheet對象,其中index為工作表名稱或索引號;如Worksheets(1)、 Worksheets("第一季度數據")。工作表索引號表明該工作表在工作表標簽中的位置:第一個(最左邊的)工作表的索引號為1,最後一個(最右邊 的)為Worksheets.Count。需要注意的是:在使用過程中excel會自動重排工作表索引號,保持按照其在工作表標簽中的從左至右排列,工作表的索引號遞增。因此,由於可能進行的工作表添加或刪除,工作表索引號不一定始終保持不變。

3、圖表:Chart 、Charts、ChartObject、ChartObjects、ActiveChart

Chart代表工作簿中的圖表。該圖表既可為嵌入式圖表(包含在ChartObject中),也可為一個分開的(單獨的)圖表工作表。

Charts代表指定工作簿或活動工作簿中所有圖表工作表的集合,但不包括嵌入式在工作表或對話框編輯表中的圖表。使用Charts(index) 可引用單個Chart圖表,其中index是該圖表工作表的索引號或名稱;如Charts(1)、Charts("銷售圖表")。圖表工作表的索引號表示 圖表工作表在工作簿的工作表標簽欄上的位置。Charts(1)是工作簿中第一個(最左邊的)圖表工作表;Charts(Charts.Count)為最後一個(最右邊的)圖表工作表。

三、

1、對於從沒使用過Excel宏功能的話,一般要先進行添加「宏」選項,具體路徑就是點擊左上角的微軟圖標,依次選擇:「Excel選項」-「常用」,勾選「功能區顯示開發工具選項卡」,然後就可以看到在Excel選項卡中就多了一個「開發工具」的選項。

2、在Excel選項卡上選擇「開發工具」,開始宏的錄制,選中B3單元格的文字【網路網頁】,點擊選擇「錄制宏」。

3、這時,會彈出一個「錄制新宏」的對話框,我們想要將【網路網頁】進行加粗和變紅的操作,因此,將宏的名稱命名為「加粗變紅」,同時設定快捷鍵便於快速調用,小編建議大家使用大寫字母的快捷鍵,最後點擊「確定」按鈕開始錄制。

4、按照我們錄制宏的目的,選擇「開始」選項卡,對於【網路網頁】進行加粗和變紅的操作。

5、完成以後切換到「開發工具」選項卡,點擊「停止錄制」按鈕。這樣,命名為「加粗變紅」的宏就錄制好了。

❼ EXCEL宏代碼編寫

1、新建一工作表。
2、在sheet1中插入一個藝術字(藝術字將成為按鈕)。
3、右擊藝術字→指定宏→新建。
4、復制以下代碼,就會在sheet1的A列中出現結果。(若要隨機可插入Rnd函數)。

Sub 藝術字1_單擊()

step_a:
a = InputBox("A的比例(請輸入數字):")
If Not (IsNumeric(a)) Then
MsgBox "輸入不是數字,程序終止。"
Exit Sub
End If
a1 = a / 100 * 350
If a1 <> Int(a1) Then
MsgBox "A的個數=350*" & a & "%=" & a1 & "個,數量不是整數,請重新輸入。"
GoTo step_a
End If

step_b:
b = InputBox("B的比例(請輸入整數):")
If Not (IsNumeric(b)) Then
MsgBox "輸入不是數字,程序終止。"
Exit Sub
End If
b1 = b / 100 * 350
If b1 <> Int(b1) Then
MsgBox "B的個數=350*" & b & "%=" & b1 & "個,數量不是整數,請重新輸入。"
GoTo step_b
End If

MsgBox "C的比例=1-A的比例-B的比例=" & 100 - a - b & "%"

Sheet1.Cells(1, 2) = "A的數量= " & a1 & "個"
Sheet1.Cells(2, 2) = "B的數量= " & b1 & "個"
Sheet1.Cells(3, 2) = "C的數量= " & 350 - a1 - b1 & "個"

For i = 1 To a1
Sheet1.Cells(i, 1) = "A"
Next i
For i = i To a + b1
Sheet1.Cells(i, 1) = "B"
Next i
For i = i To 350
Sheet1.Cells(i, 1) = "C"
Next i

End Sub

❽ excel 中的宏如何編制,需要輸入什麼代碼

EXCEL中的宏是使用VB來編寫的,你按Alt+F11就可以啟動宏編輯器,看到類似於VB的開發界面。

❾ 在Excel的實際應用中,請問:1.怎樣編寫「宏」代碼2.怎樣編寫「腳本」代碼

樓上的回答很好。當然有相應的書,書店有,網上也能搜索到。

我特別要說的第一點是:VBA本身的幫助系統非常全面,我記性不好,幾乎每次寫VBA的時候都要查一下手冊。

第二點,許多詳細的語句是可以通過錄制宏來得到例子代碼,其實我們要寫的許多腳本是可以錄制的,然後修改一下,比如用for或者while寫個循環來往復做。

VBA的語法基本上和VB差不多,只要知道一些EXCEL的對象結構就好編程,下面是我寫的一個例子代碼,本程序是我工作需要的一個任務抽象出來的:把基層公司上報的多個EXCEL文件裡面某個表的內容串起來,本來也可以手工去復制粘貼,但是分公司數十個,個別公司更新數據的時候很麻煩,你看看,可以對「宏」有個直觀的認識:

PrivateSubCommandButton1_Click()
IfCells(1,1)<>"結果:"Then
Cells(1,2)="A1的內容是否被修改,程序不敢貿然轉換!"
ExitSub
EndIf
ForEachwInWorkbooks
Ifw.Name=Cells(6,2)Then
Cells(1,2)="先關閉要導入的文件,如果是本文件名字與要導入的相同,請關閉後充命名再打開!"
ExitSub
EndIf
Nextw
IfMsgBox("程序無法判斷是否重復導入,請慎重選擇!",vbYesNo,"警告")<>vbYesThenExitSub
Cells(1,2)="開始轉換,耐心等待。。。"
'定位本表的指定工作薄到變數target_sheet裡面
ForEachtarget_sheetInSheets
Iftarget_sheet.Name=Cells(2,2)ThenExitFor
Nexttarget_sheet
Iftarget_sheet.Name<>Cells(2,2)Then
Cells(1,2)="本工作薄裡面沒有找到指定的工作表["&Cells(2,2)&"]。"
EndIf
'找到本工作薄指定工作表的最後一行
k=Cells(3,2)
Whiletarget_sheet.Cells(k,1)<>""Ortarget_sheet.Cells(k,2)<>""Ortarget_sheet.Cells(k,3)<>""
k=k+1
Wend
i=7
ok_list=""
WhileCells(i,3)<>""
IfCells(i,3)="1"Then
'f=MsgBox(Cells(i,2),vbYesNo,"即將轉換的文件。。。")
st=Dir(Cells(i,2))
Ifst=""Then
Cells(1,2)="文件["&Cells(i,2)&"]不存在,轉換終止"
ExitSub
EndIf
'打開文件,打開後ActiveWorkbook指向新的工作薄
Workbooks.OpenCells(i,2)
'定位新打開的工作薄
'ForEachnew_bookInWorkbooks
'Ifnew_book.Name=Cells(i,2)ThenExitFor
'Nextnew_book
'檢測工作表是否存在
ForEachsource_sheetInActiveWorkbook.Sheets
Ifsource_sheet.Name=Cells(2,2)ThenExitFor
Nextsource_sheet
Ifsource_sheet.Name<>Cells(2,2)Then
ActiveWorkbook.Close
Cells(1,2)="文件["&Cells(i,2)&"]中不存在指定的工作表["&Cells(2,2)&"],轉換終止"
ExitSub
EndIf
'循環導入所有行
j=Cells(3,2)
Whilesource_sheet.Cells(j,1)<>""Orsource_sheet.Cells(j,2)<>""Orsource_sheet.Cells(j,3)<>""
'導入一行
source_sheet.Rows(j).Copytarget_sheet.Rows(k)
'Forx=1ToCells(4,2)
'target_sheet.Cells(k,x)=source_sheet.Cells(j,x)
'Nextx
j=j+1
k=k+1
Wend
ActiveWorkbook.Close
Ifok_list=""Then
ok_list=Cells(i,1)
Else
ok_list=ok_list&"、"&Cells(i,1)
EndIf
Cells(i,3)=0
Cells(i,4)="√"
EndIf
i=i+1
Wend
Cells(1,2)="恭喜你,本次轉換完成:"&ok_list
EndSub