Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Excel-在范围内执行命令-与其他工作簿交互_Excel_Vba_Vbe - Fatal编程技术网

VBA Excel-在范围内执行命令-与其他工作簿交互

VBA Excel-在范围内执行命令-与其他工作簿交互,excel,vba,vbe,Excel,Vba,Vbe,我已经试着弄明白这一点有一段时间了。我锁定了我的vba项目,因为我不希望大多数人能够修改代码。问题是,我有基于用户输入修改其他模块的代码,这显然会导致问题,因为如果模块被锁定,您无法修改它。我只是不做“sendkeys”(lolc'mon),没有实际的方法来解锁它,这样我就可以修改代码了 所以我创建了一个.xlam加载项。模块将新代码写入文件,将其保存为.bas类型,然后外接程序导入并运行它 但是 我在与工作簿(为.xlam加载项生成模块的工作簿)交互时遇到问题。下面是我发现很棘手的代码部分。它

我已经试着弄明白这一点有一段时间了。我锁定了我的vba项目,因为我不希望大多数人能够修改代码。问题是,我有基于用户输入修改其他模块的代码,这显然会导致问题,因为如果模块被锁定,您无法修改它。我只是不做“sendkeys”(lolc'mon),没有实际的方法来解锁它,这样我就可以修改代码了

所以我创建了一个.xlam加载项。模块将新代码写入文件,将其保存为.bas类型,然后外接程序导入并运行它

但是

我在与工作簿(为.xlam加载项生成模块的工作簿)交互时遇到问题。下面是我发现很棘手的代码部分。它主要与使用所述工作簿执行自动填充和更新表单有关

public sub wbUpdate()
    Dim wb as workbook
    Set wb = workbooks("WB.xlsm")
    Dim lastRow as long

    '======example #1====== not sure my autofill syntax is right:
    Worksheets("Sheet1").Select
    lastRow = wb.worksheets("Sheet1").Range("A" & Rows.Count).End(xlUp).row
    k = lastRow
    wb.worksheets("Sheet1").Range("B2").Select
    wb.worksheets("Sheet1").Range("B2").value = ""

    'below is where I get a runtime error, not sure why
    wb.worksheets("sheet1").Range("B2").AutoFill _ 
        Destination:=wb.worksheets("Sheet1").Range("B2:B" & lastRow)

    '======Example #2====== Try to show a userForm and center
    'but can't seem to get the syntax right

    With wb.progressBar '<== runtime error on @ this line
        .StartUpPosition = 0
        .Left = Application.Left + (0.5 * Application.Width) - (0.5 * .Width)
        .Top = Application.Top + (0.5 * Application.Height) - (0.5 * .Height)
        .Show
    End With
End Sub
公共子wbUpdate()
将wb设置为工作簿
设置wb=工作簿(“wb.xlsm”)
最后一排一样长
'=======示例#1=======不确定我的自动填充语法是否正确:
工作表(“表1”)。选择
lastRow=wb.worksheets(“Sheet1”).Range(“A”和Rows.Count)。End(xlUp)。row
k=最后一行
wb.工作表(“表1”).范围(“B2”).选择
wb.工作表(“表1”).范围(“B2”).值=“”
'下面是我遇到运行时错误的地方,不知道为什么
wb.工作表(“表1”).范围(“B2”).自动填充
目的地:=wb.工作表(“表1”).范围(“B2:B”和最后一行)
'====示例#2=====尝试显示userForm和center
'但似乎没有正确的语法

使用wb.progressBar“您不应该依赖于锁定的VBA项目,因为这种保护是多么容易,您的
自动填充
行续集有降价问题。”