小编Jea*_*ett的帖子

DoEvents不做这些事件......为什么?

我正在使用DoEvents强制更新状态栏(或表单中的某个单元格)中的进度指示器,如下面的示例代码所示.但屏幕不刷新,或在某些时候停止刷新.任务最终完成但进度条无用.

为什么不DoEvents"做事"?我还可以做些什么来强制更新屏幕?

编辑:我在Windows XP上使用Excel 2003.

这是对早期问题的跟进; 感谢Robert Mearns的回答和下面的示例代码.

Sub ProgressMeter()

Dim booStatusBarState As Boolean
Dim iMax As Integer
Dim i As Integer

iMax = 100

    Application.ScreenUpdating = False
''//Turn off screen updating

    booStatusBarState = Application.DisplayStatusBar
''//Get the statusbar display setting

    Application.DisplayStatusBar = True
''//Make sure that the statusbar is visible

    For i = 1 To iMax ''// imax is usually 30 or so
        fractionDone = CDbl(i) / CDbl(iMax)
        Application.StatusBar = Format(fractionDone, "0%") …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

在组合框中设置默认项目

我有一个在组合框中设置项目的功能,默认情况下会设置一个项目

- 选项列表 -

 public void SetOperationDropDown()

    {

        int? cbSelectedValue = null;
        if(cmbOperations.Items.Count == 0)
        {
            //This is for adding four operations with value in operation dropdown  
            cmbOperations.Items.Insert(0, "PrimaryKeyTables");
            cmbOperations.Items.Insert(1, "NonPrimaryKeyTables");
            cmbOperations.Items.Insert(2, "ForeignKeyTables");
            cmbOperations.Items.Insert(3, "NonForeignKeyTables");
            cmbOperations.Items.Insert(4, "UPPERCASEDTables");
            cmbOperations.Items.Insert(5, "lowercasedtables");
            //ByDefault the selected text in the cmbOperations will be -SELECT OPERATIONS-. 
            cmbOperations.Text = "-SELECT OPERATIONS-";
        }
        else
        {
            if(!string.IsNullOrEmpty("cmbOperations.SelectedValue"))
            {
                cbSelectedValue = Convert.ToInt32(cmbOperations.SelectedValue);
            }
        }
        //Load the combo box cmbOperations again 
        if(cbSelectedValue != null)
        {
            cmbOperations.SelectedValue = cbSelectedValue.ToString();
        }
    }
Run Code Online (Sandbox Code Playgroud)

有谁能建议这样做的方法?

c# visual-studio winforms

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

GetSaveAsFilename默认文件夹

GetSaveAsFilename在VBA for Excel中使用.有没有办法让这个默认文件夹打开?例如,我总是希望它在C:\MyDocuments\Music调用它时开始.

excel vba excel-vba

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

邮政编码距离计算器

我有一个地址电子表格,我需要计算他们所有邮政编码和我的邮政编码之间的距离.我对使用的方法相当灵活,但我希望有某种web服务或数学算法.仅美国地址.基本上我需要输入2个邮政编码并缩小它们之间的距离.

我愿意使用Excel公式或VBA,如果需要,我甚至可以用C#.net编写代码.

你会如何计算这些距离?

excel vba zipcode distance

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

边界椭圆约束为水平/垂直轴

背景:我正在尝试将地形图剪辑为围绕多个风力涡轮机的最小尺寸椭圆,以最小化地图的大小.执行此贴图剪裁的程序可以剪切为椭圆,但只有椭圆,其轴沿x轴和y轴对齐.

我知道边界椭圆问题算法(找到包围一组点的最小区域椭圆).

但是,我如何约束这个算法(或制作一个不同的算法),使得得到的椭圆需要使其长轴水平或垂直定向,无论哪个给出最小的椭圆 - 从不以一个角度?

在此输入图像描述

当然,这种约束使得得到的椭圆大于"需要"包围所有点,但这仍然是约束.

language-agnostic algorithm geometry

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

如何检测Android设备麦克风中的打击

如何检测用户何时吹入设备麦克风?然后,这将用于触发应用程序的某些操作.

android microphone detection

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

如何通过名称获取控件名称?

我有一个简单的功能,其中有一个组合框.如果组合框的值等于"禁用",我将禁用文本框B.有许多组合框及其对应的文本框B,按行排列并手动命名.如果命名了组合框A Product1,则将命名文本框B.Product1_status

我想的是:

If value_of_a = "disable" Then 
 Dim name_of_b as String
 name_of_b = Me.Combo.Name + "_status"
 get_object_by_name(name_of_b).Enabled = False
End If
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

excel vba

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

当我使用git difftool时,p4merge显示错误'nul是(或指向无效文件')--cached

我刚决定并安装了p4merge作为git的可视化合并工具.为了做到这一点,我使用此命令配置了我的git

git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge $BASE $LOCAL $REMOTE $MERGED'
Run Code Online (Sandbox Code Playgroud)

然后我测试了它们并运行git difftool命令,它运行得很好.但是当我跑步时git difftool --cached,p4merge显示错误信息:

nul is (or points to) an invalid file
Run Code Online (Sandbox Code Playgroud)

我也尝试按照此博客中的说明操作,但我无法解决问题.

顺便说一句,我在Windows 7上使用git和p4merge.有谁知道这个问题的解决方案?

git p4merge

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

在MySQL中使用Temp Table或Cursor时没有得到预期的输出

我正在做一些POC.我在MySQL中编写了一个存储过程.我正在使用MySQLWorkbench进行数据库操作,如创建新表,存储过程,查询执行等.即使代码在语法和逻辑上看起来正确,我也会观察到一些意外的执行行为.

以下是要点.

方法1 -

在第一种方法中,我正在使用INSERT INTO ... SELECT语句创建临时表并使用所选列添加记录.

CREATE TEMPORARY TABLE XYZ(....);

INSERT INTO XYZ (....) SELECT (....) FROM ABC WHERE clause;
Run Code Online (Sandbox Code Playgroud)

执行此操作后,我只在临时表的几列中获取空值,并且所有其他临时表列都填充了正确的值.

如果我在单独的SQL选项卡中运行相同的select语句(对于相同的where子句),即使对于在临时表中获取空值的那些列,我也可以看到正确的输出.

如果我用*(所有列)更改上面的INSERT INTO..SELECT语句,那么我在临时表中得到正确的输出..

INSERT INTO XYZ  SELECT * FROM ABC WHERE clause;
Run Code Online (Sandbox Code Playgroud)

但是不要想要所有列.我还尝试使用ENGINE = value创建临时表.但没有奏效.即使我用普通表(没有TEMPORARY)尝试了所有这种方法,但不幸的是

方法2 -

在第二种方法中,我用光标而不是临时表修改了相同的存储过程.但即使在这种情况下,游标也没有获得任何记录.

DECLARE cur1 CURSOR FOR SELECT (....) FROM ABC WHERE clause;
Run Code Online (Sandbox Code Playgroud)

如果我在单独的SQL选项卡中运行相同的select语句(对于相同的where子句),我可以看到正确的输出.

难道我做错了什么?我可以就此得到任何建议吗?

提前致谢.

mysql sql stored-procedures temp-tables cursor

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

神秘使用LOOKUP

我多年来一直在使用这个Excel公式.它工作正常,但我想了解它的工作原理!该公式用于查找列表中的最后一个关联值.例如:

宏用法示例.

C14中的公式: =LOOKUP(2,1/(B1:B12="meat"),C1:C12)

这里,公式在C14B列中查找最新"meat"标记的单元格,并返回C列中的关联值.报告认为"meat",在B9和相应的返回值C9.

公式中最令人费解的部分是"1/(....)".这个师是什么?这种语法来自哪里?可以在其他地方使用吗?为什么查找值2

excel excel-formula

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