标签: vba

Excel:如何使用VBA检查单元格是否为空?

可能重复:
使用VBA检查下面的单元格是否为空

作为VBA通过检查一个单元格是否为空,具有特定信息?例如:如果A:A ="产品特殊"而B:B为空则C1 ="产品特殊"这只是一个想法. 在此输入图像描述

以及如何在范围内使用For Each.并返回其他单元格中的值?

excel vba excel-vba

64
推荐指数
3
解决办法
54万
查看次数

VB6和VBA的替代IDE

我被Visual Studio 2008和Eclipse宠坏了,不得不在VB6应用程序上做一些维护工作.

有谁知道VB6的替代/更新IDE?

重写不是一个选项我只是修复了一些错误,它是一个很大的代码库.

ide vb6 vba vbe

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

如何在VBA中连接字符串?

这个问题来自Range.Formula =在VBA下的注释引发了一个奇怪的错误.

我通过反复试验编写了该程序,所以我自然会尝试+连接字符串.

但是&+连接字符串更正确吗?

excel vba excel-vba

63
推荐指数
2
解决办法
29万
查看次数

在Excel中使用UDF更新工作表

这不是一个问题,而是发布此评论,因为我不记得以前看过这种方法.我回答了对之前回答的评论,并尝试了以前我没有尝过的事情:结果很有趣所以我虽然把它作为一个独立的问题发布,但我自己的回答.

在SO(以及许多其他论坛)上出现了许多关于"我的用户定义函数有什么问题"的问题,答案是"你无法从UDF更新工作表" - 这里的限制:

Excel中自定义函数的限制说明

有一些方法可以解决这个问题,例如,请参阅此处(https://sites.google.com/site/e90e50/excel-formula-to-change-the-value-of-another-cell)但我不要以为我的确切方法就在其中.

另请参阅:从UDF更改单元格注释

excel vba

63
推荐指数
2
解决办法
5254
查看次数

是否需要在VBA函数中将对象设置为Nothing

我总是读到,一旦我完成它们,建议将对象设置为空.但我通常只在表单内的函数中使用它们.

在保留功能范围时,是否丢失了引用并释放了内存,而不管将对象设置为Nothing?

即是否真的有必要这样做:

Set db = Nothing
Set record_set = Nothing
Run Code Online (Sandbox Code Playgroud)

ms-access vba office-2003 access-vba

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

迭代VBA字典?

我正在使用MS Runtime Scripting库中的Dictionary类来存储标签将用于报告模板的位置.有没有办法迭代该字典中的所有键值对,就像在Python中一样?我只想使用密钥作为行号(它都在A列中),值将是标签头.

就像是:

For Each key in dict
    Range("A" & key).Value = dict(key)
Next key
Run Code Online (Sandbox Code Playgroud)

excel vba

62
推荐指数
1
解决办法
8万
查看次数

如何为阵列上的每个循环使用a?

我有一个字符串数组:

Dim sArray(4) as String
Run Code Online (Sandbox Code Playgroud)

我将遍历数组中的每个String:

for each element in sarray
  do_something(element)
next element
Run Code Online (Sandbox Code Playgroud)

do_something 将字符串作为参数

我收到错误传递元素作为字符串:

ByRef Argument Mismatch

我应该将元素转换为String还是其他什么?

excel vba

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

确定变量的完整类型

通过完整类型的变量,我指的是您在即时窗口中获得的信息类型:

在此输入图像描述

我想使用VBA动态确定类型信息.该函数TypeName()不能做我想要的,因为它返回变量的子类型,并且不区分例如保持范围的变量变量,保持范围的对象变量和保持范围的范围变量.

作为初步步骤,我编写了一个函数,用于检测变量是否传递给它.它的工作原理是利用传递引用语义.代码使用其参数执行的操作只能通过变量完成,因此如果传递的变量实际上不是变量,则会触发错误:

Function IsVariant(var As Variant) As Boolean
    Dim temp As Variant
    Dim isVar As Boolean

    If IsObject(var) Then
        Set temp = var
    Else
        temp = var
    End If

    On Error Resume Next
        Set var = New Collection
        var = "test"
        If Err.Number > 0 Then
            isVar = False
        Else
            isVar = True
        End If
    On Error GoTo 0

    If IsObject(temp) Then
        Set var = temp
    Else
        var = temp
    End If
    IsVariant …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

61
推荐指数
2
解决办法
1万
查看次数

执行查询DoCmd.RunSQL时出现错误3340查询''已损坏

自从安装Office 2010的Windows更新以解决KB 4484127以来,我在执行包含WHERE子句的查询时遇到错误。

例如,执行以下查询:

DoCmd.RunSQL "update users set uname= 'bob' where usercode=1"
Run Code Online (Sandbox Code Playgroud)

导致此错误:

错误号= 3340查询''已损坏

当前仍在安装有问题更新

屏幕快照显示Microsoft Office 2010 Service Pack 2更新448127

如何成功运行查询?我应该只卸载此更新吗?

ms-access vba

61
推荐指数
5
解决办法
2万
查看次数

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

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

excel vba

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

标签 统计

vba ×10

excel ×7

excel-vba ×3

ms-access ×2

access-vba ×1

ide ×1

office-2003 ×1

vb6 ×1

vbe ×1