VBA程序翻译
Range("C6:D24").Select '当前
中选选C6:D24区域
Sheets("上月益表选选选").Select '选 选选选中上月益表
Selection.ClearContents '清除中区域选选选选
Sheets("平衡表").Select '选 中平衡表
ActiveWindow.ScrollColumn = 4 '当前表的第四列至最左选选选选选选, 此行可以去除ActiveWindow.ScrollColumn = 3 '当前表的第三列至最左选选选选选选Range("G5:g18,I5:I18").Select '选选数据区域
Selection.Copy '选选选选选制中区域
Range("C5").Select '选中C5选元格
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '将之前制的内容粘到以选选选选选选选选选C5选始的区域ActiveWindow.SmallScroll Down:=8 '表格向下选选8行
Range("G20:G30,i20:i30").Select '选选数据区域
Application.CutCopyMode = False '消除使用copy选选选选选选选制后生的虚框Selection.Copy '选选选选选制取区域
Range("C20").Select '定位C20选元格
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '粘选
ActiveWindow.SmallScroll Down:=12 '向下选选12行
Range("G32:G36,I32:I36").Select '选取区域
Application.CutCopyMode = False '消除使用copy选选选选选选选制后生的虚框Selection.Copy '选制
Range("C32").Select '定位C32选元格
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '粘选
ActiveWindow.SmallScroll Down:=0 '向下选选0行,多余!
Range("E32:F36").Select '选取
Application.CutCopyMode = False '消除使用copy选选选选选选选制后生的虚框Selection.ClearContents '清除区选选
Range("E38:F46").Select '选取
Selection.ClearContents '清除区选选
Range("C38:D46").Select '选取,
Selection.ClearContents '清除区选选
Sheets("城建税").Select '选 中城建税表
ActiveWindow.ScrollRow = 14 '14行置窗口部选选,
ActiveWindow.ScrollRow = 13 '13行置窗口部选选
ActiveWindow.ScrollRow = 12 '......ActiveWindow.ScrollRow = 11 '......ActiveWindow.ScrollRow = 10 '......ActiveWindow.ScrollRow = 9 ActiveWindow.ScrollRow = 8 ActiveWindow.ScrollRow = 6 ActiveWindow.ScrollRow = 5 ActiveWindow.ScrollRow = 4 ActiveWindow.ScrollRow = 3 ActiveWindow.ScrollRow = 2 ActiveWindow.ScrollRow = 1 '......'ActiveWindow.ScrollRow = 14到ActiveWindow.ScrollRow = 2选选 也可以去掉选选选选选选选选选选选选选选选选选元格的范个表示方式就好了,里用的是cells属性。cells,5,1,代表A5选元格,
cells,169,1,表示A169选选选选选元格。修改后的宏代如下:
你要循工作的目的不太明确,但按照你的要求用以下句选选选选选选选选选选选选选选选选选选选选选选选选选Sub 宏1()
'
' 宏1 宏
'
' 快捷选: Ctrl+z
'
for a=67 to 90 step 2
columns(chr(a) & ":" & chr(a+1)).selectnext
End sub追选for a=67 to 90 step 2
(chr(a) & ":" & chr(a+1))
再麻你解一下两个代的意思选选选选选选选选选选选选选选
回答1、for 是循句的,选选选选选选选next选选选选选选句是循的尾。
a是循的量,选选选选选step是次增加的数量。每
选选选选选选选句的意是量a从67选始,将a和90相比,如果选选选选选a小雨90,行下一选选选选选句句,当行到选选选选选选选next选选选句,a自加上选选选2,然后返回for选选选选选选句,再次比,直到a大于90,直接跳选next选选选选句束。
2、chr,,函数是将括弧中的数成文本符号。因字母选选选选选选选选选选选选"C"的相的数是选选选选选选67,"D"选选的是68......."Z"选选的是90。也就是:选选chr,67,=字母C,chr,68,=字母D3、& 符号表示将前后的字符串接起来,所以比如当量选选选选选选选选选选选选a=67选选选选选选选选选选,才的句就成了:
chr,67,:chr,67+1,也就是C:D
For i = 1 To 65535 Step 1
aa: If Cells(i, B).Value = "本小选选选" Then
Rows("i:i+5").Delete';;;;;;;;中段选选选,加一行.
GoTo nx
Else:
GoTo nx
End If
nx: Next
再选选
如何用宏藏选选EXCEL表格中的某一列,
Columns(n).Hidden = True
Excel 用宏藏和取消藏某行选选选选选选选选选 2011-3-16 20:37 提者:选选选 key820 | 选选次数:1367次
一个下拉菜两个选选选选选选选A1分等于选选选1或者2.。
当下拉菜第一个,选选选选选选选选选选选选选A1=1,,藏第选选选2~5行,取消藏第选选选6~8行,当下拉菜第二个,选选选选选选选选选选选选选A1=2,,取消藏第选选选2~5行,藏第选选选6~8行,Private Sub Worksheet_Calculate()
If Range("A1") = 1 Then
Rows("2:5").Select
Selection.EntireRow.Hidden = True
Rows("6:8").Select
Selection.EntireRow.Hidden = False
ElseIf Range("A1") = 2 Then
Rows("2:5").Select
Selection.EntireRow.Hidden = False
Rows("6:8").Select
Selection.EntireRow.Hidden = True
End If
End Sub
选选选选选选选选个什不行啊,
Private Sub Worksheet_Calculate()选成
Private Sub Worksheet_Change(ByVal Target As Range)
--------
整个程序可以成:选选选
Private Sub Worksheet_Change(ByVal Target As Range)
For Each c In Target
If c.Address = [A1].Address Then GoTo 100Next
Exit Sub
100:
If [A1].Value = 1 Then
Rows("2:5").Hidden = True
Rows("6:8").Hidden = False
ElseIf [A1].Value = 2 Then
Rows("2:5").Hidden = False
Rows("6:8").Hidden = True
End If
End Sub
Sub 选藏()
For a = 57 To 66 Step 1
If Cells(a, 3) = "" Then
Rows(a).Select
Selection.EntireRow.Hidden = True
GoTo nx
End If
nx:
Next
End Sub
The If…Then…Else选句
[日期:2008-03-01] 来源:作者: admin [字体:大中小 ]
选选选选选选选选选选选选选选选选选选在,你知道当一个或多个条件真或假如何示信息或采取行。
然而,如果你的程序需要在条件真采取某个行,而条件假采选选选选选选选选选选选选选选选选选取另外一个行,怎呢,你可以通添加一个选选选选选选选选选选选选选选选选选选Else子句就可以根据的果选选选选选将你的程引到一个合适的句。选选选选选选选选选选选选选If…Then…Else选选——选选选句有两格式行和多行。行的格式:选选
If 条件 Then 选句1 Else 选句2
当条件真,行字选选选选选选选选选Then后面的句,当条件假,行选选选选选选选选选选选选选Else后面的句。选选例如:
If Sales>5000 Then Bonus = Sales * 0.05 Else MsgBox “No Bonus”
如果存在量选选选选选Sales的大于选选选5000的,那选选选选VB将使用下述
:Sales * 0.05来算选选股,选选bonus,。然而,如果量选选Sales不大于5000的,选选VB就会示信息选选选选“No Bonus”。If…Then…Else选选选选选选选选选选选选选选选选选选句用于决定行两个操作中的哪一个
当你要行多个句,你最好使用多行格式的选选选选选选选选选选选选选选选选选选If…Then…Else选句:
If 条件 Then
如果条件真要行的句选选选选选选选选选
Else
如果条件假要行的句选选选选选选选选选
End If
注意,多行的If…Then…Else选选选选句以字End If选选选选选选选选选束。使用上面示的使得程序构易于。在下面的例子中,如果条件选选选选选选选选选选选选选选选选选选选ActiveSheet.Name = “Sheet1”选真,VB就选行Then和Else之的句,并且忽略选选选选选选选选选Else和End If之的句。当条件假,选选选选选选选选选选选选VB就忽略Then和Else之的句,并且行选选选选选选选选选Else和End If之的代。选选选选选
If ActiveSheet.Name = "Sheet1" Then ActiveSheet.Name = "My Sheet" MsgBox "This sheet has been renamed."
Else
MsgBox "This sheet name is not default." End If
选选选选选选选选选选我来看看程序示例:
1. 在工程Decisions(Chap05.xls)里插入一个新模选
2. 重命名模选选选选IfThenElse
3. 选选选入下列程WhatTypeOfDay:
Sub WhatTypeOfDay()
Dim response As String
Dim question As String
Dim strmsg1 As String, strmsg2 As String Dim myDate As Date
question = "Enter any date in the format mm/dd/yyyy:" _
& Chr(13)& " (e.g., 11/22/1999)" strmsg1 = "weekday"
strmsg2 = "weekend"
response = InputBox(question) myDate = Weekday(CDate(response)) If myDate >= 2 AND myDate <= 6 Then MsgBox strmsg1
Else
MsgBox strmsg2
End If
End Sub
上面的程要求用入任意一个日期。用提供的字符串通一个内置函数选选选选选选选选选选选选选选选选选选选选选选选选选选选选选选选CDate选选选Date数据型,最好,函数选选选选选选选选Weekday将日期一个指明日期在一周选选选选选选选选选选选选选里的天数,参表选选5-3,。整数存于量选选选选选选选选myDate里。条件用以量选选选选选选选选myDate是否大于等于2以及小于等于6。如果果真,那用就被告知,选选选选选选选选选选选选选选选选选提供的数据是个工作日,否,程序宣布是个周末。选选选选选选选选选选选选
表5-3 内置函数Weekday返回的选
常数
选
vbSunday
1
vbMonday
2
vbTuesday
3
vbWednesday
4
vbThursday
5
vbFriday
6
vbSaturday
7
4. 从VB窗口运行程序。运行几次,选选选选选选选选选选选选选选选选选选选选选次提供不同的日期。照你的桌面或日VB每的答
案是否正确。
技巧5-3 什是构化程序,选选选选选选选选
选选选选选选选选选选选选选选选选选选选选选选选选选选构化程要求所有的程序具有模化的,并使用三
选选选选选选选选选选选选选选选选选选选选选选选选选选构:序,决定和循。序构一条接一条地行句,
决定构是你基于一些条件的来行一些特定的句,选选选选选选选选选选选选选选选选选选选选选选选选选而只要某特定的条件真,循构就重地行某条或某些句。选选选选选选选选选选选选选选选选选选选选循是下章的选选选选选选选选选选选选选选选选选选选选选选选选选选选主。在构化程里,其它一些句,例如GoTo,是不允选选选选选的。构
化程序的代容易选——选选选选选选选选选选选选选它跟踪从上到下平地走下来,没有任何跳到
特定选选选选选选选选选选选选选选选选选选选选选选选选选选选选选志去的句。下面就是一个构化程序和非构化程序的例子:非选选选选选选 构化程序:
Sub GoToDemo()
Dim num, mystr
num = 1
If num = 1 Then
GoTo line1
Else
GoTo Line2
Line1:
mystr = “Number equals 1” GoTo LastLine
Line2:
mystr = “Number equals 2” LastLine:
Debug.Print mystr
End sub
选构化程序:
Sub Structure()
Dim num, mystr
num = 1
If num = 1 Then
mystr = “Number equals 1” Debug.Print mystr
Else
mystr = “Number equals 2” End if
End Sub
当你在起草你的VBA程序,并且需要从一个程序的一行跳到另一行,你可选选选选选选选选选能会被使用
GoTo选选选选选选选选选选选选选选句所惑,不要跳。依于使用GoTo选选选选选选句来你程序的路径将致令人迷
惑的代,被选选选选选选选选选选选选选选选选选选选选选选选称意大利式面条代。使用构化程,你可以易地到选选选选选选选选选选选选选选达你程序里的目的地。
选里是另外一个示范If…Then…Else选选选选句的程:
Sub EnterData()
Dim cell As Object
Dim strmsg As String
On Error GoTo VeryEnd
strmsg = "Select any cell:"
Set cell = Application.InputBox(prompt:=strmsg, Type:=8) cell.Select
If IsEmpty(ActiveCell) Then
ActiveCell.Formula = InputBox("Enter text or number:")
Else
ActiveCell.Offset(1, 0).Select End If
VeryEnd:
End Sub
上面的字程序EnterData提示用任意元格,然后元格地选选选选选选选选选选选选选选选选选选选选选选选址于象量cell。If…Then…Else选选选选选选选选选选选选选选选构被的元格是否空。IsEmpty是个内置函数,用来决定某个量是否选选选选选选选选选选选选选选选选选选选选选选选选选选已被初始化了。如果量没有被初始化,那IsEmpty函数返回true,真,。回想我,当量被选选选选选选选选选选选选选选选选选选选选选选选选予第一个,它就被初始化了。在本程中,如果当前元格选选选选选选选选选选选选选选选空,VB将它当作一个零度选””,。除了:的字符串,If IsEmpty(ActiveCell) Then
你可以使用下述指选选选选选选选选选选令:
If ActiveCell.Value = "" Then
如果当前元格选选选选选选空,Then后面的句就会被行。句提示用入选选选选选选选选选选选选选选选选选一个文本或数字,并且一旦数据被提供,数据就会入当前元格。选选选选选选选选选选选选选选如果当前元格不选选选选选选选空,VB将跳到子句Else后面的指令。指选选选选选令将VB选选同列里的下一个元格。当你运行程,信息框提示你一个元格选选选选选选选选选选选选选选选选选选选选选选选选选
在工作表上,点选选选选选选选选选选选选选选选选选选选选选选任何元格。被的元格地址就会出在信息框的框里面。选选选选选选选选选选选选选选选选点确定退出信息框。VB选选选选选选选选选选选选选被元格的内容并且跳到你程里的选选选选true或false指令选选,true指令选选在Then后面,而false指令选选在Else后面,。For a = 57 To 66 Step 1
If Cells(a, 3) = "" Then
Rows(a).Select
Selection.EntireRow.Hidden = True
Else
Rows(a).Select
Selection.EntireRow.Hidden = False
End If
Next