小编Ala*_*any的帖子

等待Shell完成,然后格式化单元格 - 同步执行命令

我有一个可执行文件,我使用shell命令调用:

Shell (ThisWorkbook.Path & "\ProcessData.exe")
Run Code Online (Sandbox Code Playgroud)

可执行文件执行一些计算,然后将结果导出回Excel.我希望能够在导出后更改结果的格式.

换句话说,我首先需要Shell命令等待,直到可执行文件完成其任务,导出数据,然后执行下一个格式化命令.

我试过了Shellandwait(),但没有太多运气.

我有:

Sub Test()

ShellandWait (ThisWorkbook.Path & "\ProcessData.exe")

'Additional lines to format cells as needed

End Sub
Run Code Online (Sandbox Code Playgroud)

不幸的是,格式化仍然在可执行文件完成之前进行.

仅供参考,这是我使用ShellandWait的完整代码

' Start the indicated program and wait for it
' to finish, hiding while we wait.


Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal hObject As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32.dll" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccessas …
Run Code Online (Sandbox Code Playgroud)

shell vba synchronous

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

使用VBA输入单元格公式

我在Cell A1中有这个简单的公式

=10*Round(B1/10,0)
Run Code Online (Sandbox Code Playgroud)

我知道如何在VBA中输入,我只需写:

Range("A1").Formula = "=10*Round(B1/10,0)"
Run Code Online (Sandbox Code Playgroud)

现在,如果我不知道我要编号的单元格怎么办?换句话说,我的代码中有一个整数变量N,它可以采用多个值,我想要对B列的行号N中的数字进行舍入.

我怎么写这个?我试过了:

Range("A1").Formula = "=10*Round(B" & N & "  & "/10",0)"
Run Code Online (Sandbox Code Playgroud)

但这不起作用.为引号尝试了多个布局但没有成功.

任何人都可以让我知道:

  1. 如何输入这个简单的公式?更重要的是
  2. 提供一些链接/参考,以帮助我将来输入其他公式?

谢谢

quotes excel vba formula

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

检查趋势线是否存在于VBA中

我有一张带有图表的表格.我需要插入一个按钮来打开/关闭Trendline.首先,我需要检查趋势线是否存在.听起来很简单,但正在推动我坚果!

这是我用来创建trednline并对其进行格式化的代码:

Sub Trending() 

Sheets("Sheet1").ChartObjects(1).Activate
    ActiveChart.SeriesCollection(1).Trendlines.Add
    ActiveChart.SeriesCollection(1).Trendlines(1).Select
    With Selection
        .Type = xlPolynomial
        .Order = 3
        .Border.ColorIndex = 3
        .Border.Weight = xlMedium

    End With

End Sub
Run Code Online (Sandbox Code Playgroud)

为了检查趋势线的存在,我试过:

If Sheets("Sheet 1").ChartObjects(1).SeriesCollections(1).Trendlines(1).Count = 1 Then
    [Statement]
End If
Run Code Online (Sandbox Code Playgroud)

但测试失败了.

我究竟做错了什么?什么是非脏的方式呢?

谢谢,Al

vba exists object trendline

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

Application.Inputbox [LEFT]和[TOP]在Excel Vba中不起作用。为什么?

我的VBA代码中有一个简单的输入框。我想设定它的起始位置。我知道参数[LEFT]和[TOP]应该可以,但是它们不起作用。

这是我所拥有的:

x = Application.InputBox(MyPrompt, MyTitle, , 50, 50)
Run Code Online (Sandbox Code Playgroud)

这是函数语法

 InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type) 
Run Code Online (Sandbox Code Playgroud)

(我将第三个参数[DEFAULT]留为空白)。

无论我为LEFT和TOP使用什么数字,输入框始终在同一位置开始。怎么了

excel vba excel-vba inputbox

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

标签 统计

vba ×4

excel ×2

excel-vba ×1

exists ×1

formula ×1

inputbox ×1

object ×1

quotes ×1

shell ×1

synchronous ×1

trendline ×1