
sub test()
dim jgarr(1 to 1000) as string
dim jgJs as integer
for each mycell in sheets(“sheet1”)cells
if mycellfontcolor= then '绿色的色号 自己查一下
jgjs=jgjs+1
jgarr(jgjs)=mycelltext
endif
next mycell
'输出结果
sheets("sheet2")activate
for i=1 to jgjs
cells(i,1)=jgarr(i)
next i
end sub
随手写了一下,没有调试过
举例:
在建立企事业单位员工Excel表格过程中,员工的身份z号、所属省份、性别等信息都是必须要输入的。如果单位员工众多的话,相关个人信息的输入工作量无疑是相当大的。那么,能不能让繁琐的个人信息输入过程变得更轻松以提高自己的工作效率呢,当然是肯定的。因为只须利用一个Excel加载宏,就可以很方便地达到上述目的。
方法:
1将下载好的“根据身份z求省市xla”解压到硬盘的任意位置。
2接着运行“Excel 2007”(其他版本 *** 作类似)并单击其左上角的圆形按钮,选择“Excel选项”,打开“Excel选项”对话框的“加载项”分支;
3再单击该分支下的“转到”按钮,以打开“加载宏”对话框;
4最后加载完勾选,A处新出现的“根据身份z求省市”复选框并单击“确定”按钮即可。
用 & 号连接几个单元格值
用FOR循环一下
将连接好的值赋值给数组
再在SHEET2输出数组即可
使用offset方法
Set c = ActiveCellOffset(-1, 0) '取得活动单元格左边一格
倍数关系是什么关系?自己往里面套吧
offset(n,m)横向n格,纵向m格,负数时往左上,正数时往右下
单元格/单元格区域
shaps(n)topleftcell 判断是否在指定单元格上
(32) ActiveCellCurrentRegionSelect
或Range(ActiveCellEnd(xlUp),ActiveCellEnd(xlDown))Select
'选择当前活动单元格所包含的范围,上下左右无空行
(33) CellsSelect '选定当前工作表的所有单元格
(34) Range("A1")ClearContents
'清除活动工作表上单元格A1中的内容
SelectionClearContents '清除选定区域内容
Range("A1:D4")Clear
'彻底清除A1至D4单元格区域的内容,包括格式
(35) CellsClear '清除工作表中所有单元格的内容
(36) ActiveCellOffset(1,0)Select
'活动单元格下移一行,同理,可下移一列
(37)
Range("A1")Offset(ColumnOffset:=1)或Range("A1")Offset(,1)
'偏移一列
Range("A1")Offset(Rowoffset:=-1)或Range("A1")Offset(-1)
'向上偏移一行
(38) Range("A1")Copy
Range("B1") '复制单元格A1,粘贴到单元格B1中
Range("A1:D8")Copy
Range("F1") '将单元格区域复制到单元格F1开始的区域中
Range("A1:D8")Cut
Range("F1") '剪切单元格区域A1至D8,复制到单元格F1开始的区域中
Range("A1")CurrentRegionCopy
Sheets("Sheet2")Range("A1")
'复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中
注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列
(39) ActiveWindowRangeSelectionValue=XX
'将值XX输入到所选单元格区域中
(40) ActiveWindowRangeSelectionCount
'活动窗口中选择的单元格数
(41) SelectionCount '当前选中区域的单元格数
(42)
GetAddress=Replace(HyperlinkcellHyperlinks(1)Address,mailto:,"")
'返回单元格中超级链接的地址并赋值
(43)
TextColor=Range("A1")FontColorIndex '检查单元格A1的文本颜色并返回颜色索引
Range("A1")InteriorColorIndex
'获取单元格A1背景色
(44) cellscount '返回当前工作表的单元格数
(45)
SelectionRange("E4")Select '激活当前活动单元格下方3行,向右4列的单元格
(46) CellsItem(5,"C") '引单元格C5
CellsItem(5,3) '引单元格C5
(47)
Range("A1")Offset(RowOffset:=4,ColumnOffset:=5)
或 Range("A1")Offset(4,5)
'指定单元格F5
(48)
Range("B3")Resize(RowSize:=11,ColumnSize:=3)
Rnage("B3")Resize(11,3)
'创建B3:D13区域
(49) Range("Data")Resize(,2)
'将Data区域扩充2列
(50)
Union(Range("Data1"),Range("Data2")) '将Data1和Data2区域连接
(51)
Intersect(Range("Data1"),Range("Data2"))
'返回Data1和Data2区域的交叉区域
(52) Range("Data")Count
'单元格区域Data中的单元格数
Range("Data") ColumnsCount
'单元格区域Data中的列数
Range("Data") RowsCount
'单元格区域Data中的行数
(53) SelectionColumnsCount
'当前选中的单元格区域中的列数
SelectionRowsCount '当前选中的单元格区域中的行数
(54) SelectionAreasCount
'选中的单元格区域所包含的区域数
(55) ActiveSheetUsedRangeRow
'获取单元格区域中使用的第一行的行号
(56) RngColumn '获取单元格区域Rng左上角单元格所在列编号
(57)
ActiveSheetCellsSpecialCells(xlCellTypeAllFormatConditions)
'在活动工作表中返回所有符合条件格式设置的区域
(58) Range("A1")AutoFilter
Field:=3,VisibleDropDown:=False '关闭由于执行自动筛选命令产生的第3个字段的下拉列表
萝卜的哪个是正则表达式,可能你看不明白。不过我想你要的也是结果而已。
发个通俗的,其实都差不多。
选择你要计算的单元格,可以是多个单元格。然后修改代码中要存放结果的单元格,运行宏 “计算” 即可。
Sub 计算()
Dim Rng As Range, S As Double
For Each Rng In Selection
S = S + jisuan(Rng)
Next
Range("b1")Value = S '指定结果存放单元格
End Sub
Function jisuan(Rng As Range) As Double
Dim I As Long, S As String, S1 As String
Dim Scr As Object, S2 As String
S = RngText
For I = 1 To Len(S)
S2 = Mid(S, I, 1)
If InStr("()0123456789+-/^", S2) > 0 Then
S1 = S1 & Mid(S, I, 1)
End If
Next
jisuan = Evaluate(S1)
End Function
以上就是关于使用EXCEL宏,VBA,找出整个sheet1中的所有绿色单元格,并读取每个单元格的值全部的内容,包括:使用EXCEL宏,VBA,找出整个sheet1中的所有绿色单元格,并读取每个单元格的值、用宏提取excel 中的数据、excel中怎样用宏将变量值写到指定单元格中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)