标签: vba

确定对象是否是VBA中集合的成员

如何确定对象是否是VBA中集合的成员?

具体来说,我需要找出表定义是否是TableDefs集合的成员.

collections ms-access vba object access-vba

60
推荐指数
4
解决办法
12万
查看次数

如何在Excel中激活特定工作表?

我只需要激活某个工作表.我有一个字符串变量,保留工作表的名称.

excel vba

60
推荐指数
2
解决办法
76万
查看次数

如何在Excel VBA中使用Implements

我正在尝试为工程项目实现一些形状并将其抽象出来以用于一些常见功能,以便我可以使用通用程序.

我正在尝试做的是有一个调用的接口,cShape并拥有cRectanglecCircle实现cShape

我的代码如下:

cShape 接口

Option Explicit

Public Function getArea()
End Function

Public Function getInertiaX()
End Function

Public Function getInertiaY()
End Function

Public Function toString()
End Function
Run Code Online (Sandbox Code Playgroud)

cRectangle

Option Explicit
Implements cShape

Public myLength As Double ''going to treat length as d
Public myWidth As Double ''going to treat width as b

Public Function getArea()
    getArea = myLength * myWidth
End Function

Public Function getInertiaX()
    getInertiaX = (myWidth) * (myLength ^ 3) …
Run Code Online (Sandbox Code Playgroud)

excel vba interface excel-vba

60
推荐指数
4
解决办法
4万
查看次数

将数字四舍五入到最接近的5或10或X.

鉴于像499,73433,2348这样的数字,我可以使用什么VBA来舍入到最接近的5或10?或任意数字?

5点:

 499 ->  500
2348 -> 2350
7343 -> 7345
Run Code Online (Sandbox Code Playgroud)

到10:

 499 ->  500
2348 -> 2350
7343 -> 7340
Run Code Online (Sandbox Code Playgroud)

等等

vba rounding

59
推荐指数
4
解决办法
21万
查看次数

Excel range.Rows属性真的有用吗?

好的,我正在为一个遗留的Excel-VBA应用程序完成一个附加项目,我再一次遇到了神秘范围的难题.Rows(?)和worksheet.Rows属性.

有谁知道这些属性真正做了什么以及它们应该为我提供什么?(注意:所有这些可能也适用于相应的*.Columns属性).

我真的希望能够使用它是返回一系列行,如下所示:

   SET rng = wks.Rows(iStartRow, iEndRow)
Run Code Online (Sandbox Code Playgroud)

但是我从来没有能够做到这一点,即使Intellisense为它显示了两个参数.相反,我必须使用其他两种(非常kludgy)技术中的一种.

帮助是非常无益的(对于Office VBA通​​常如此),并且对于"Rows"的Google搜索并不是非常有用,无论我添加了多少其他术语.

我能够使用它的唯一的事情是1)返回单行作为范围(rng.Rows(i))和2)返回范围(rng.Rows.Count)中的行的计数.是吗?真的没有别的东西吗?

澄清:我知道它会返回一个范围,并且还有其他方法可以获得一系列行.我要求的具体是我们从.Cells()和.Range()得到的.Rows()得到了什么?我知道的两件事是1)返回单行范围的简单方法和2)计算范围内行数的方法.

还有别的事吗?

excel vba ole-automation excel-vba

59
推荐指数
4
解决办法
15万
查看次数

Excel:令人难以置信的缩小和扩展控件

偶尔,我会遇到一个电子表格,它会受到魔法按钮或列表框的影响,随着时间的推移会变大或变小.

代码中没有任何内容可以指示这一点.

还有其他人经历过这种快乐吗?

excel vba excel-2007 excel-2003 excel-2010

59
推荐指数
4
解决办法
11万
查看次数

如果string是数字,则vba将字符串转换为int

我需要将从excel获得的字符串转换为整数.为此,我使用CInt(),效果很好.但是,字符串可能不是数字,在这种情况下我需要将整数设置为0.目前我有:

If oXLSheet2.Cells(4, 6).Value <> "example string" Then
  currentLoad = CInt(oXLSheet2.Cells(4, 6).Value)
Else
  currentLoad = 0
End If
Run Code Online (Sandbox Code Playgroud)

问题是我无法预测可能在此单元格中的所有可能的非数字字符串.有没有办法可以告诉它转换如果它是一个整数,如果没有则设置为0?

excel vba excel-vba

59
推荐指数
3
解决办法
60万
查看次数

为什么使用整数而不是长?

我经常看到Overflow错误有关的问题.

我的问题是为什么使用integer变量声明而不是仅仅定义所有数值变量(不包括double等)long

除非您正在执行类似for循环的操作,您可以保证该值不会超过32,767的限制,否则是否会对性能产生影响或其他会导致不使用long

vba integer integer-overflow long-integer

59
推荐指数
6
解决办法
6万
查看次数

打开Excel文件,无需显示即可使用VBA进行读取

我想用宏搜索现有的Excel文件,但我不希望在代码打开这些文件时显示这些文件.有没有办法让它们在"背景"中打开,可以这么说?

excel file-io vba excel-vba

58
推荐指数
7
解决办法
28万
查看次数

如何在VBA语言中表达"如果值不为空"?

如何在VBA语言中表达"如果值不为空"的条件?这是这样的吗?

"if value is not empty then..."
Edit/Delete Message
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

58
推荐指数
4
解决办法
52万
查看次数