小编qwe*_*ace的帖子

VBScript - 如何让程序等到进程完成?

我在使用VBA/Excel宏和HTA的VBScript中遇到问题.问题只是VBScript,我有另外两个组件,即VBA宏和HTA前端工作完美.但在我解释这个问题之前,我想你帮助我,我必须帮助你理解VBScript的背景.

因此,基本上所有组件(VBScript,VBA宏和HTA)都是我正在构建的工具的一部分,以自动化一些手动琐事.它几乎是这样的:

A - HTA

~~~~~~~~~~~~

  1. 用户从HTA/GUI中选择一些文件.
  2. 在HTA的HTML中,"SCRIPT"标签中有一些VBScript,它将用户的4个输入文件作为参数传递给VBScript(由WScript.exe执行 - 为了清楚起见,您可以参考注释#1)
  3. 该脚本,从现在开始调用myScript.vbs然后处理4个参数,其中3个是特定文件,第4个是包含多个文件的路径/文件夹位置 - (为清晰起见,请参阅注释#2)

B - myScript.vbs

~~~~~~~~~~~~

  1. myScript.vbs打开前3个参数,这些参数是Excel文件.其中一个是带有我的VBA宏的*.xlsm文件.
  2. myScript.vbs然后使用第4个参数作为包含多个文件的文件夹的PATH,并将其分配给变量,以便在调用GetFolder时传递给FileSystemObject对象,即

    ... 'Other code here, irrelevant for this post
    Dim FSO, FLD, strFolder
    ... 'Other code here, irrelevant for this post
    arg4 = args.Item(3)
    strFolder = arg4
    Set FSO = CreateObject("Scripting.FileSystemObject"
    'Get a reference to the folder you want to search
    Set FLD = FSO.GetFolder(strFolder)
    ...
    
    Run Code Online (Sandbox Code Playgroud)
  3. 从这里我创建一个循环,以便我可以顺序打开文件夹中的文件,然后运行我的宏,即

    ...
    Dim strWB4, strMyMacro
    strMyMacro = "Sheet1.my_macro_name"
    
    'loop through the folder and get …
    Run Code Online (Sandbox Code Playgroud)

vbscript excel vba excel-vba excel-2010

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

VBA - 如何将Excel中的行从一个工作簿复制到另一个工作簿?

尽管有许多帖子我看起来与我的问题一脉相承,但没有一个答案满足我的要求.如果你能把我联系到一个我很乐意读它.

我有一个带工作表的工作簿.为简单起见,假设我的工作簿有一个工作表.在我的名为"Sheet1"的工作表中,单元格A1到A4中有数据.

我希望我的VBA代码做的是:

  1. 将工作簿'A'的第1行(或特定单元格A1到A4)复制到范围变量'myRange'
  2. 创建一个新工作簿,让我们称之为工作簿'B'
  3. 为Workbook'B的默认"sheet1"提供"Test Name"的新名称
  4. 打开工作簿'B'(虽然我意识到VBA代码"Workbooks.Add"打开一本新书,所以这一步可能是多余的,因为Workbooks.Add涵盖了第2点和第3点的一半)
  5. 将'myRange'粘贴到'Workbook B'的第一行
  6. 保存名为"Test Book"的"工作簿B"和方括号中的时间戳.该文件还必须是文件扩展名"xls"
  7. 关闭'工作簿B'并返回'工作簿A'

到目前为止我所拥有的是:

Sub OpenAndSaveNewBook()
    'Declarations
    Dim MyBook As String
    Dim MyRange As Range
    Dim newBook As Workbook

    'Get name of current wb
    MyBook = ThisWorkbook.Name
    Set MyRange = MyBook.Sheets("Sheet1").Range("A1,F1")

    'Create/Open new wb
    newBook = Workbooks.Add

    'Save new wb with XLS extension
    ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "/" & "TEST-BOOK", _
                            FileFormat:=xlNormal, CreateBackup:=False

    '===NOTE: BEFORE THE FOLLOWING RUNS I NEED TO PERFORM ACTIONS ON CELLS VIA VBA ON
    '===WORKBOOK 'A'. DOES …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba excel-2010

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

标签 统计

excel ×2

excel-2010 ×2

excel-vba ×2

vba ×2

vbscript ×1