小编Dan*_*iel的帖子

在VBA中重置表单

我有一个VBA表单,有多种选择选项,包括下拉菜单,文本字段,复选框和无线电.

我只是想知道用按钮按下清除所有这些字段的最佳方法.我的一个朋友试图通过电子邮件向我发送下面的代码来帮助,但遗憾的是它不起作用,我检查了变量名称.

关于如何改进它的任何建议?

提前致谢.

Private Sub btnReset_Click()

Unload Me
UserForm.Show

End Sub
Run Code Online (Sandbox Code Playgroud)

这是userform的其他代码.

Dim DeptCode 'Holds department code

Private Sub UserForm_Initialize()

    Dim c_deptCode As Range
    Dim c_deptName As Range
    Dim deptCodes As Variant
    Dim deptNames As Variant

    Dim ws_dept As Worksheet
    Set ws_dept = Worksheets("lookupDept")

    ' Assign each range to an array containing the values
    deptCodes = Choose(1, ws_dept.Range("deptCode"))
    deptNames = Choose(1, ws_dept.Range("deptName"))

    For i = 1 To ws_dept.Range("deptCode").Rows.Count
        ' Create the combined name (code + space + name)
        CombinedName …
Run Code Online (Sandbox Code Playgroud)

vba

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

VBA - 通过用户定义的函数更新其他单元格

我在VBA中有一个UDF(用户定义函数),需要在Excel上修改单元格范围.

由于UDF无法做到这一点,我尝试使用事件调用.

当我提出自定义事件并尝试写入单元格时,我得到#Value错误.另一方面,Application事件 Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)可以写入单元格.

我的问题是如何通过调用UDF更新其他单元格?

excel events vba handlers excel-vba

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

在这种情况下,为什么1 = 1不正确?

就我而言,这没有任何价值.我在研究问题时发现了这一点.

在VBA中:

鉴于以下内容: Dim a As Boolean, b As Boolean, c As Boolean

代码将a = b = c = 1 = 1 a赋值为False.

但是a = b = c = true指定了一个真实的.

任何人都可以解释为什么会这样吗?显然1 = 1评估为真.

作为旁注,a = 1 = 1也会将a指定为true.此外,使用变体而不是布尔值的行为是相同的.

我再次知道这没有实际意义,我只是好奇是否有人可以解释这种行为.

vba

3
推荐指数
1
解决办法
329
查看次数

我为什么要调用ArrayList.ToArray?

我工作的代码库在几个地方的代码类似于以下代码:

Dim i As Integer
Dim ints As New ArrayList
ints.Add(1)

'... lets say we add more Integers

For each i in ints.ToArray(GetType(Integer))
'Do something
Next
Run Code Online (Sandbox Code Playgroud)

我想知道.ToArray(GetType(Integer))从那以后在运行时几乎得到相同的结果,从中获得了什么好处.那是在呼唤For Each i In ints.我看到的唯一区别是,ArrayList如果你没有调用.ToArray(),如果结果错误消息中的某些类型不是Integer.

我为什么要使用ToArray(type)ArrayList,如果我会做一个For Each地方已经指定类型的循环?

.net vb.net arraylist

3
推荐指数
1
解决办法
598
查看次数

如何加载每个UserForm而无需单独调用.Show?

我想弄清楚如何加载每个UserForm而不必调用Userform1.Show UserForm2.Show等.这是受到这个答案的评论的启发:模块中的Excel VBA UserForm_Initialize().

我在几个地方发现了这种方法:

Sub OpenAllUserForms()
    Dim uf As UserForm
    For Each uf In UserForms
        uf.Show
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

但是,无论是否有多少附加到工作簿,都不会显示Userforms.当我逐步完成代码时,我确定UserForms集合是空的!

如何在不必明确显示每个Userform的情况下加载每个Userform?

excel vba excel-vba userform

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

如何防止垃圾邮件点击发射事件?

我正在看下面的代码,我想知道如何阻止垃圾邮件点击,例如,如果你一次点击很多次,动画就会开始搞乱.

我怎样才能防止这种情况发生?只是有条件的工作?我尝试过但我无法让它发挥作用. if isAnimating = true

如何使动画继续播放并阻止用户交互,直到完成.

http://codepen.io/Filippo/pen/WvGbJB/?editors=011

javascript jquery velocity.js

1
推荐指数
1
解决办法
1964
查看次数

SQL查询卡在Infintite循环中

我在我的数据库上运行一个非常简单的SQL查询,它似乎一遍又一遍地返回相同的记录,创建一个无限循环.也许我错过了一些明显的东西,但我没有看到它.这是查询:

select s.customer as 'Customer',
    s.store as 'Store',
    s.item as 'Item',
    d.dlvry_dt as 'Delivery',
    i.item_description as 'Description',
    mj.major_class_description as 'Major Description',
    s.last_physical_inventory_dt as 'Last Physical Date',
    s.qty_physical as 'Physical Qty',
    s.avg_unit_cost as 'Unit Cost',
    [qty_physical] * [avg_unit_cost] as Value
from database.DELIVERY d,
    database.STORE_INVENTORY s,
    database.ITEM_MASTER i,
    database.MINOR_ITEM_CLASS mi,
    database.MAJOR_ITEM_CLASS mj,
    database.STORE_INVENTORY_ADJUSTMENT sa
where sa.store = s.store
    and s.last_physical_inventory_dt between '6/29/2011' and '7/2/2011'
    and s.customer = '20001'
    and s.last_physical_inventory_dt is not null
Run Code Online (Sandbox Code Playgroud)

有一条记录落在2011年7月1日,它会一直重复,直到我取消查询.

有什么帮助防止这种情况?

sql infinite-loop

0
推荐指数
1
解决办法
4767
查看次数

用于捕获多个 SQL 结果集的 VBA 宏

我曾多次使用与 SQL Server 相关的 VBA 宏,但它们始终是单个“select”语句或调用返回单个结果集的存储过程。现在我发现自己编写了一个宏来调用存储过程,但存储过程返回多个结果集。宏是否可以捕获每个 SQL 结果集并将其放在不同的工作表上?任何示例和/或指导将不胜感激。

sql-server vba

0
推荐指数
1
解决办法
5226
查看次数