Posts Tagged VBA
将文本转换为数据
好久没有用Excel VBA写程序了。最近对一些分析模型做更新,于是重新写。提取的数据比较dirty,得进行一些处理。比如有的数值,提取出来却成了文本格式。
在立即窗口中,在语句前面添加 “?”,可以立即知道该语句的结果。
引用excel中的函数方法:Application.WorksheetFunction.函数。但是,若该函数在VBA中有,则不要采用该方式引用。
下面是一个将文本转换为数字的程序。
Dim i As Integer
Dim j As Integer
Sub ForceString2Value()
For i = 2 To 6598
For j = 13 To 16
With Worksheets("Invest")
‘ determine whether there is character "”%” in cells
If InStr(1, Cells(i, j), "%") Then
Cells(i, j) = CDbl(Left(Cells(i, j), Len(Cells(i, j)) – 1)) / 100
Else
‘ in some cells, those strings can’t be changed to value.
On Error Resume Next
’ if the cell is string, then use CDbl to change string to value
Cells(i, j) = CDbl(Cells(i, j))
End If
End With
Next j
Next i
End Sub
将图片批量导入到PPT中
方式1:运用宏代码,如下:
Sub insert()
Dim i As Integer
For i = 1 To ActivePresentation.Slides.Count
ActivePresentation.Slides .Select
With ActiveWindow.Selection.SlideRange
.FollowMasterBackground = msoFalse
.Background.Fill.UserPicture "path" & i & ".jpg"
End With
Next
End Sub
方式2:插入–>图片–>新建相册.
关于Excel VBA的程序说明
Excel vba的程序又根据有无执行对象分为过程程序和事件程序。
过程程序简单的说就是通过代码完成一个任务。它和事件程序的主要区别就是它没有明确的服务对象,但可以被其他程序所调用。过程程序又根据是否有返回值分为以下两种。
1. 子过程程序:运行后不能返回值。
2. 函数过程程序:运行后能够返回值。
自定义函数一般存放在添加的模块中,但也可以存放在指定对象的(如工作表对象)的代码窗口中。不同的是,在模块中的函数可以在任何一个程序中调用,而存放在对象代码窗口中的函数只能被本代码窗口内的程序所调用。如果要变下在工作表公式中使用的函数,就必须在添加的模块中编写。
事件程序是指当某一特定事件发生时才执行的程序。例如,当选取单元格时触发某个程序的运行。选取单元格的动作就是一个事件。使用事件程序的好处是极大增强了操作者与程序的互动性。
事件程序的添加和过程程序有所不同。事件程序有指定的对象,所以添加前要先选取该对象并打开该对象的代码窗口,然后在代码窗口的对象列表中选取该对象或该对象的子对象。并在过程列表中选取需要的事件。在代码窗口内会自动添加该程序的开始和结束语句。
Recent Comments