excel-excel宏的問題宏里面能否有多個if語句?比如A1至A4四個單 愛問
宏里面當然可以有多個IF語句。
OFFICE中的宏,說白了,就是MICROSOFT在OFFICE中嵌入的自動化編程控制語言VBA,VBA就是Visual Basic For Application的意思,是VB的一個子集,絕大數語法都與VB相同,所以IF流程控制語句也是相同的。 VBA必須依賴于父程序如EXECL,而不能獨立存在! 你可以直接在EXECL的"工具"->"宏"菜單中,打開"Visual Basic編輯器"進行代碼的編寫,象寫VB的一個SUB一樣。
簡單例子如下: Sub aaa() If Sheet1。 Cells(1, 1) Cells(3, 1) Cells(1, 4) = Sheet1。
Cells(1, 1) Sheet1。Cells(2, 4) = Sheet1。
Cells(2, 1) Sheet1。Cells(3, 4) = Sheet1。
Cells(3, 1) Sheet1。 Cells(4, 4) = Sheet1。
Cells(4, 1) End Sub 。
Excel宏的條件語句
Dim x As Range
Set x = *(What:="60044190", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, MatchByte:=False, SearchFormat:=False)
If x Is Nothing Then
Sheets("Sheet2").Select
*(*).Clear
Else
*te
*(0, 1).Range("A1").Select
*
Sheets("Sheet2").Select
*
End If
請問EXCEL宏的寫法,是一個關于IF語句的函數
如果沒有理解錯誤的,按以下方式改。
if A1<5 A5=A2
if A1>=5 & B1=Y A5=A3
if A1>=5 & B1!=Y A5=A4
改為
if A1<5 Then A5=A2
if A1>=5 AND B1=Y Then A5=A3
if A1>=5 AND B1<>Y Then A5=A4
誰能告訴我在宏程序if語句中總有一句類似于#3=#3-0.5的語句是什么意思
程序段為宏程序語句: ? 包含算術或邏輯運算(=)的程序段。
? 包含控制語句(例如,GOTO,DO,END)的程序段。 ? 包含宏程序調用指令(例如,用G65,G66,G67 或其它G 代碼,M 代碼 調用宏程序)的程序段。
除了宏程序語句以外的任何程序段都為NC 語句。 說明 ? 即使置于單程序段運行方式, 機床也不停止。
但是, 當參數 N0.6000#5SBM 設定為1 時,在單程序段方式中,機床停止。 ? 與NC 語句的不同 ? 在刀具半徑補償方式中宏程序語句段不做為不移動程序段處理(見Ⅱ- 15.7 節)。
如果NPS(參數N0.3450#4)為1,滿足以下條件時程序段中的NC 語句 可認為與宏程序語句性質相同。 ? 與宏程序語句有相 同性質的NC 語句 ? 含有子程序調用指令(例如,用M98 或其它M 代碼或用T 代碼調用子 程序)但沒有除O,N 或L 地址之外的其它地址指令的NC 語句其性質 與宏程序相同。
? 不包含除O,N,P 或L 以外的指令地址的程序段其性質與宏程序語句 相同。 15.5.2 IF 之后指定條件表達式。
條件轉移 (IF 語句) IF[<條件表達式>] GOTO n 如果指定的條件表達式滿足時,轉移到標有順序號n 的程序段。如果指定 的條件表達式不滿足,執行下個程序段。
如果變量#1 的值大于10,轉移到順序號N2 的程序段。 IF[#1GT10]GOTO2; 如果條件滿足 程序 如果條件不滿足 N2 G00 G91 X10.0; IF[<條件表達式 >]THEN 如果條件表達式滿足,執行預先決定的宏程序語句。
只執行一個宏程序語 句。 如果#1 和#2 的值相同,0 賦給#3。
IF〔#1 EQ #2〕THEN #3=0; 說明 ·條件表達式 條件表達式必須包括算符。算符插在兩個變量中間或變量和常數中間,并 且用括號 (〔,〕)封閉。
表達式可以替代變量。 運算符由2 個字母組成,用于兩個值的比較,以決定它們是相等還是一個 值小于或大于另一個值。
注意,不能使用不等符號。 ·運算符 表15.5.2 運算符 運算符 含義 EQ 等于(=) NE 不等于(≠) GT 大于(>) GE 大于或等于(≥) LT 小于(LE 小于等于(≤) ·示例程序 下面的程序計算數值1~10 的總和 〇9500 #1=0;???????????存儲和數變量的初值 #2=1;???????????被加數變量的初值 N1 IF〔#2 GT 10〕GOTO2;??當被加數大于10 時轉移到N2 #1=#1+#2;?????????計算和數 #2=#2+#1;?????????下一個被加數 GOTO1;??????????轉到N1 N2 M30;??????????程序結束 功能 格式 備注 定義 #i=#j 加法 #i=#j+#k; 減法 #i=#j-#k; 乘法 #i=#j*#k; 除法 #i=#j/#k; 正弦 #i=SIN[#j]; 反正弦 #i=ASIN[#j]; 余弦 #i=COS[#j]; 反余弦 #i=ACOS[#j]; 正切 #i=TAN[#j]; 反正切 #i=ATAN[#j]/[#k]; 角度以度指定。
90°30′ 表示為90.5 度。 平方根 #i=SQRT[#j]; 絕對值 #i=ABS[#j]; 舍入 #i=ROUND[#j]; 上取整 #i=FIX[#j]; 下取整 #i=FUP[#j]; 自然對數 #i=LN[#j]; 指數函數 #i=EXP[#j]; 或 #i=#j OR #k; 異或 #i=#j XOR #k; 與 #i=#j AND #k; 邏輯運算一位一位地按 二進制數執行。
從BCD 轉為BIN #i=BIN[#j]; 從BIN 轉為BCD #i=BCD[#j]; 用于與PMC 的信號交換 轉移和循環 在程序中,使用GOTO 語句和IF 語句可以改變控制的流向。有三種轉移 和循環操作可供使用: 轉移和循環 GOTO 語句(無條件轉移) IF 語句(條件轉移:IF?THEN?) WHILE 語句(當?時循環) 轉移到標有順序號n 的程序段。
當指定1 到99999 以外的順序號時,出現 P/S 報警No.128。可用表達式指定順序號。
15.5.1 無條件轉移 (GOTO 語句) GOTOn;n:順序號(1~99999) 例: GOTO1; GOTO#10; 15.5.3 循環 (WHILE 語句) 在WHILE 后指定一個條件表達式,當指定條件滿足時,執行從DO 到END 之間的程序。否則,轉到END 后的程序段。
WHILE [條件表達式]DO m;(m=1,2,3) ∶ 如果條件不滿足 END m; 如果條件滿足程序 當指定的條件滿足時,執行WHILE 從DO 到END 之間的程序。否則, 轉而執行END 之后的程序段。
這種指令格式適用于IF 語句。DO 后的號 和END 后的號是指定程序執行范圍的標號,標號值為1,2,3。
若用1, 2,3 以外的值會產生P/S 報警No.126。用下面的方法調用宏程序: 15.6 宏程序調用 宏程序調用 非模態調用(G65) —— 模態調用(G66,G67) —— 用G 代碼調用宏程序 —— 用M 代碼調用宏程序 —— 用M 代碼調用子程序 —— 用T 代碼調用子程序 限制 ? 宏程序調用和子程 宏程序調用(G65)不同于子程序調用(M98),如下所述。
序調用之間的差別 ? 用G65,可以指定自變量(數據傳送到宏程序)。M98 沒有該功能。
? 當M98 程序段包含另一個NC 指令(例如,G01 X100.0 M98Pp)時,在指 令執行之后調用子程序。相反,G65 無條件地調用宏程序。
? M98 程序段包含另一個NC 指令(例如,G01 X100.0 M98Pp)時,在單程 序段方式中,機床停止。相反,G65 機床不停止。
? 用G65,改變局部變量的級別。用M98,不改變局部變量的級別。
說明 ? 呼調 ? 在G65 之后,用地址P 指定用戶宏程序的程序號。 ? 當要求重復時,在地址L 后指定從1 到9999 的重復次數。
省略L 值時, 認為L 等于1。 ? 使用自變量指。
excel宏中if條件語句如何編寫? 例如在按鈕中指定一個宏,使sheet1表
sub m
if *(3,1)="" or *(3,1)=0 then'通過If進行條件判斷,如果A3=“”或者0
*ut '上述條件成立,執行sheet2表的打印
else '如果上述條件不成立,即A3不為0時
*ut '則打印工作表sheet2
*ut '以及工作表sheet3
end if '條件結束
end sub