我有三个关于excel--vba的问题。(最主要的是关于公共对话框)

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:36:19
1、在excel工作表中如何把一个表格旋转90度,让原先的行成为列,列成为行。
2、excel有丰富强大的函数,而VBA则相对较少,能否在VBA中引用excel的函数。如何引用?
3、这个问题最重要。在我原先使用的电脑上运行vba编程可用控件中有micosoft comm dialog control,然而当我重装电脑后,这个控件找不到了。我发现这个控件的文件:原先在windows\system32\下的comdlg32.ocx没有了。我从其他电脑上拷贝了一个,在vba中用“引用”功能加入控件组,但是新增加的控件使用时却报错:无法创建控件,因为他未经正确授权。请高手指点,我该如何恢复并使用这个控件。

第一个问题转置粘贴即可

第二的问题楼上回答是错误的。当然直接用excel函数通常情况下是不可以的,不过我们可以曲线救国,excel中表格可以用的函数,在VBA中也可以用,只需通过WorksheetFunction对象就可以引用,后面加函数名称,然后加range来引用单元格。举个例子:
Application.WorksheetFunction.Max(range("A1:C5"))

下面就是如何在VBA中使用excel自带函数的文章。说简单其实很简单,根据我的经历,仔细阅读一下非常非常有好处,以后能省大力气,因为这个绝对会经常用到。如果嫌罗嗦,直接看看例子就明白怎么用了。但强烈建议你收藏起来以后阅读。

在 Visual Basic 语句中可以使用大多数 Microsoft Excel 工作表函数。若要查看可以使用的工作表函数列表,请参阅 Visual Basic 可使用的工作表函数列表。

注意 一些工作表函数在 Visual Basic 中是不实用的。例如:Concatenate 函数就不实用,因为在 Visual Basic 中可使用 & 运算符来连接多个文本值。

从 Visual Basic 中调用工作表函数
在 Visual Basic 中,通过 WorksheetFunction 对象可使用 Microsoft Excel 工作表函数。

以下 Sub 过程使用 Min 工作表函数来决定在某个单元格区域中的最小值。首先,将变量 myRange 声明为 Range 对象,然后将其设置为 Sheet1 上的 A1:C10 单元格区域。指定另一个变量 answer 为对 myRange 应用 Min 函数的结果。最后,answer 的值就被显示在消息框中。

Sub UseFunction()
Dim myRange As Range
Set myRange = Worksheets("Sheet1").Range("A1:C10")
answer = Application.Wo