VBA End函数在运行宏时出现语法错误

VBA End函数在运行宏时出现语法错误,vba,indexing,Vba,Indexing,我是VBA新手,正在尝试打印成PDF,我无法使用最后一行,因为当我包含结束部分时,它会显示语法错误,但当我取出它时,它会显示预期:结束语句。我不明白为什么两者都有可能 这是我的密码: Sub Save_PDf() Set AcroApp = CreateObject("AcroExch.App") Set avdoc = AcroApp.GetActiveDoc Dim PDSSaveCopy As Object If Not (avdoc Is

我是VBA新手,正在尝试打印成PDF,我无法使用最后一行,因为当我包含结束部分时,它会显示语法错误,但当我取出它时,它会显示预期:结束语句。我不明白为什么两者都有可能

这是我的密码:

Sub Save_PDf()


 
Set AcroApp = CreateObject("AcroExch.App")

  Set avdoc = AcroApp.GetActiveDoc
  Dim PDSSaveCopy As Object
  

  If Not (avdoc Is Nothing) Then

    Set Pddoc = avdoc.GetPDDoc

    WasSaved = Pddoc.Save(PDSaveFull, "U:\Common\Product Mgt - RINC\KIC\CHCS LTC\Duplicate Policy Pages")

    
    Pddoc.Save PDSaveFull,  "E27" & "U:\Common\Product Mgt - RINC\KIC\CHCS LTC\Duplicate Policy Pages"" & Sh1.Cells(e + 28, 1).Value & ".pdf" End Function
   End with "e282"


End Sub

不确定这段代码,但您打开了一个If语句,但没有用End If关闭它。您似乎还有一个以statment结尾的语句,没有以语句开头。还有一个结束函数,没有相应的开始语句。不确定代码是从何处获得的,但我会返回并检查您复制的内容。

每次在vba中打开语句时,我们都必须以end结束它。
另一个最佳实践是,在语句后面总是有缩进,如
sub
if
with
等。这将使代码更具可读性“U:\Common`看起来有问题。。。为什么要将字符串E27`添加到路径/文件名的开头?您是否希望从单元格E27中获取值?因为它不是,也不属于你放它的地方。
e
变量也是一个问题。也许我们应该在一个循环中运行
Sh1
(Sh1定义在哪里?)。这段代码中有很多内容需要解包,但为了解决标题中的问题,
End Function
是标记
函数
作用域中最后一条语句的标记:当它运行时,执行控制流返回调用方,之后的任何语句都是非法的,因为它发现自己在过程作用域之外。您可能指的是退出功能,但您在子功能中。如果没有更多的信息,恐怕这段代码是无法挽救的。