選擇題宏編程
❶ excel 選擇單元格的宏編寫問題
RANGE("A1").SELCET 選擇單元格
SELECTIONG.…… 接下去是對選擇的操作
❷ 數控編程宏程序的編程及應用及例題
用 戶 宏 程 序
能完成某一功能的一系列指令像子程序那樣存入存儲器,用一個總指令來它們,使用時只需給出這個總指令就能執行其功能。
l 所存入的這一系列指令——用戶宏程序
l 調用宏程序的指令————宏指令
l 特點:使用變數
一. 變數的表示和使用
(一) 變數表示
#I(I=1,2,3,…)或#[<式子>=
例:#5,#109,#501,#[#1+#2-12]
(二) 變數的使用
1. 地址字後面指定變數號或公式 0
格式: <地址字>#I
<地址字>-#I
<地址字>[<式子>]
例:F#103,設#103=15 則為F15
Z-#110,設#110=250 則為Z-250
X[#24+#18*COS[#1]]
2. 變數號可用變數代替
例:#[#30],設#30=3 則為#3
3. 變數不能使用地址O,N,I
例:下述方法下允許
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
4. 變數號所對應的變數,對每個地址來說,都有具體數值范圍
例:#30=1100時,則M#30是不允許的
5. #0為空變數,沒有定義變數值的變數也是空變數
6. 變數值定義:
程序定義時可省略小數點,例:#123=149
MDI鍵盤輸一. 變數的種類
1. 局部變數#1~#33
一個在宏程序中局部使用的變數
例: A宏程序 B宏程序
… …
#10=20 X#10 不表示X20
… …
斷電後清空,調用宏程序時代入變數值
2. 公共變數#100~#149,#500~#531
各用戶宏程序內公用的變數
例:上例中#10改用#100時,B宏程序中的
X#100表示X20
#100~#149 斷電後清空
#500~#531保持型變數(斷電後不丟失)
3. 系統變數
固定用途的變數,其值取決於系統的狀態
例:#2001值為1號刀補X軸補償值
#5221值為X軸G54工件原點偏置值
入時必須輸入小數點,小數點省略時單位為μm
一. 運算指令
運算式的右邊可以是常數、變數、函數、式子
式中#j,#k也可為常量
式子右邊為變數號、運算式
1. 定義
#I=#j
2. 算術運算
#I=#j+#k
#I=#j-#k
#I=#j*#k
#I=#j/#k
3. 邏輯運算
#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. 函數
#I=SIN[#j] 正弦
#I=COS[#j] 餘弦
#I=TAN[#j] 正切
#I=ATAN[#j] 反正切
#I=SQRT[#j] 平方根
#I=ABS[#j] 絕對值
#I=ROUND[#j] 四捨五入化整
#I=FIX[#j] 下取整
#I=FUP[#j] 上取整
#I=BIN[#j] BCD→BIN(二進制)
#I=BCN[#j] BIN→BCD
1. 說明
1] 角度單位為度
例:90度30分為90.5度
2] ATAN函數後的兩個邊長要用「1」隔開
例:#1=ATAN[1]/[-1]時,#1為了35.0
3] ROUND用於語句中的地址,按各地址的最小設定單位進行四捨五入
例:設#1=1.2345,#2=2.3456,設定單位1μm
G91 X-#1;X-1.235
X-#2 F300;X-2.346
X[#1+#2];X3.580
未返回原處,應改為
X[ROUND[#1]+ROUND[#2]];
4] 取整後的絕對值比原值大為上取整,反之為下取整
例:設#1=1.2,#2=-1.2時
若#3=FUP[#1]時,則#3=2.0
若#3=FIX[#1]時,則#3=1.0
若#3=FUP[#2]時,則#3=-2.0
若#3=FIX[#2]時,則#3=-1.0
5] 指令函數時,可只寫開頭2個字母
例:ROUND→RO
FIX→FI
6] 優先順序
函數→乘除(*,1,AND)→加減(+,-,OR,XOR)
例:#1=#2+#3*SIN[#4];
7] 括弧為中括弧,最多5重,園括弧用於注釋語句
例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
一. 轉移與循環指令
1.無條件的轉移
格式: GOTO 1;
GOTO #10;
2.條件轉移
格式: IF[<條件式>= GOTO n
條件式:
#j EQ#k 表示=
#j NE#k 表示≠
#j GT#k 表示>
#j LT#k 表示<
#j GE#k 表示≥
#j LE#k 表示≤
例: IF[#1 GT 10] GOTO 100;
…
N100 G00 691 X10;
例:求1到10之和
O9500;
#1=0
#2=1
N1 IF [#2 GT10] GOTO 2
#1=#1+#2;
#2=#2+1;
GOTO 1
N2 M301.循環
格式:WHILE[<條件式>=DO m;(m=1,2,3)
…
…
…
ENDm
說明:1.條件滿足時,執行DOm到ENDm,則從DOm的程序段
不滿足時,執行DOm到ENDm的程序段
2.省略WHILE語句只有DOm…ENDm,則從DOm到ENDm之間形成死循環
3.嵌套
4.EQ NE時,空和「0」不同
其他條件下,空和「0」相同
例:求1到10之和
O0001;
#1=0;
#2=1;
WHILE [#2LE10] DO1;
#1=#1+#2;
#2=#2+#1;
END1;
M30;
鑽一百個孔的程式:
O0010;
#100=0;
#101=0;
G49 G80 G40;
M6 T1;
G00 G90 G54 X#100 Y#101;
G43 H1 Z100. M13 S2000;
N1 G54 X#100 Y#101;
G98 G81 R3. Z-18.F350;
N2 #100+10.
IF [#100 GT 100 ] GOTO 4;
G54 X#100 Y#101;
GOTO 2
N4 #101+10. #100=0.
IF [ #101 GT 100 ] GOTO 3;
GOTO 1;
N3 M30;
❸ C語言宏定義 中一選擇題 概念性
答案肯定是B的,提問者的疑惑是30明明是一個
常數
,問什麼會變成一個
字元串
呢!其實是提問者對
宏定義
的理解不夠透徹造成的。
讓我們來看一下宏定義的
含義
到底是什麼(注:筆者自己的理解可能言語表達上不夠嚴謹),宏定義的作用是在
程序
編譯以前,把宏定義的內容(
如題
中MAX)用事先安排好的內容(如題中30)代替,然後在進行編譯,也就是說宏定義的作用就有點像是我們人在編程序,然後寫上了30這個字元串。只不過這個寫的
過程
有一部分工作是
編譯器
幫助我們完成的。所以宏定義可以理解為用一個字元串特定且一定的代替另一個字元串,宏定義是不允許重復
定義
的。
❹ 以下兩題如何用Excel中的宏編寫程序
程序1
subWorkBook_BeforeClose(Cancle)
dimrasrange
foreachrinRange("b3:f3").Cells
ifr.Value<0orr.value>100then
msgboxr.address&"不在0-100之間,請修改!"
cancle=true
endif
nextr
endsub
程序2
subx()
dimrasrange
foreachrinsheet1.usedrange.cells
ifr>0andr<60then
r.color=vbRred
r.font.color=vbYellow
endif
nextr
endsub
❺ 用Excel中的宏編寫下題程序,一定要用Excel的宏
Sub宏1()
[D1]=Time'記錄開始時間
Columns("A:A").Select'選擇A列
Range("A:A").AdvancedFilterAction:=xlFilterCopy,CopyToRange:=Range(_
"B1"),Unique:=True'將不重復的內容放B1開始
Range("C1").Select'選擇C1
ActiveCell.FormulaR1C1="=COUNTIF(C[-2],RC[-1])"'以B1對A列計數
Range("C1").Select'選擇C1
Selection.AutoFillDestination:=Range("C:C"),Type:=xlFillDefault'
Range("C:C").Select'粘貼到C列
[D1]=Time-[D1]'當前時間-開始時間
EndSub
❻ 關於宏的匯編程序題:
定義一個宏,宏名為EXCHANGE ,參數為 MEM1,MEM2,REG,調用時會在調用位置復制該段宏代碼,並且將對應參數換成後面的參數值。。。。
❼ excel 里宏編程問題
i = Range("A45").Value'這一句中,如果A45單元格中有數值,應該這樣寫
For t = 2 To i Step 2'這一句中,應寫成For t = 2 To i Step 2
'a = Cells(3, 9 * t / 2 - 7).Address'這一句不需要
'b = Cells(33, 9 * t / 2).Address'這一句不需要
'c = a + ":" + b'這一句不需要
Range(Cells(3, 9 * t / 2 - 7),Cells(33, 9 * t / 2)).ClearContents'單元格區域的表示方法是這樣的,刪除內容時無需先選擇它
Next
❽ 宏程序怎麼編程
這是前幾天無聊時,IFGOTO格式寫的一個法蘭克通用飛面程序。
❾ 關於宏程序編程的問題向您請教
如果在程序中把坐標系用宏表示可以這樣寫,G10L2P1這個代表的就是G54,G10L2P2代表的是G55,一直到G10L2P6代表G59,如果想讀當前主軸刀具號碼的話是#4120,你的程序中#20=#4107的意思是說當前使用的刀具補償號帶如到#20中,#7是這個刀值的實際半徑值,D#20=#[13000+#20];這句的意思是#13000代表的是刀值的長,如果你的#20=1的話,也就是說是使用的1號刀具的長度值,等號後面就是#13001,如果1號刀具的長度為100的話,#20就等於100,也就是說D100了,(如果在主程序設D125能調也直徑125的刀來嗎?)這裡面的D125不是代表直徑為125的刀具,而是使用了125號刀的半徑補償
❿ excel 宏 編程:選取一個區域,要求生成兩個折線圖(前一半生成一個,後一半也生成一個),如何實現
調用下面的函數。(2007版以上excel適用)
兩個函數選擇的是同一數據作圖,只是生成的圖的位置不同。
sub ChartAdd1()
Range("a1:a8").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=ActiveSheet.Range("$a$1:$a$8")
ActiveChart.ChartType = xlLineMarkers
With ActiveChart.Parent
.Left = 750 '此處用以修改圖表在工作表中的位置
.Top = 3000
End With
Range("a1").Select
End Sub
Sub ChartAdd2()
Range("a1:a8").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=ActiveSheet.Range("$a$1:$a$8")
ActiveChart.ChartType = xlLineMarkers
With ActiveChart.Parent
.Left = 750
.Top = 5700
End With
End Sub