Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.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
Excel 未找到名为参数的编译错误_Excel_Ms Access_Vba - Fatal编程技术网

Excel 未找到名为参数的编译错误

Excel 未找到名为参数的编译错误,excel,ms-access,vba,Excel,Ms Access,Vba,我有一个Excel工作簿,在同一字段中包含多个工作表。 我想从模型图纸上进行布局。 为了找到代码,我创建了一个宏。当我在Excel中运行它时,它会工作。我在Access中转换代码,得到错误消息: 未找到名为参数的编译错误 下面是错误部分中代码(按钮)的详细信息 Paste:=xlPasteColumnWidths 这将为您提供一个值8,因此将xlPasteColumnWidths替换为数字8 Private Sub Commande92_Click() Dim vStatusBar As S

我有一个Excel工作簿,在同一字段中包含多个工作表。 我想从模型图纸上进行布局。 为了找到代码,我创建了一个宏。当我在Excel中运行它时,它会工作。我在Access中转换代码,得到错误消息:

未找到名为参数的编译错误

下面是错误部分中代码(按钮)的详细信息

Paste:=xlPasteColumnWidths
这将为您提供一个值8,因此将
xlPasteColumnWidths
替换为数字
8

Private Sub Commande92_Click()

Dim vStatusBar As String
    Application.SetOption "Show Status Bar", True

   vStatusBar = SysCmd(acSysCmdSetStatus, "Mise en page des feuilles EXCEL ... veuillez patienter.")

 Dim xlApp As Excel.Application
 Dim xlSheet1 As Excel.Worksheet
 Dim xlBook As Excel.Workbook
 Dim sSheet As String, Rep1 As String, LaDate As String, MoisDate As String, StTarget As String, Sql1 As String
 Dim thedb As DAO.Recordset

LaDate = Now()
MoisDate = Format(LaDate, "ddmm")

Rep1 = "F:\PELO\PELO 2018-2019\FichiersInscriptionParent\"
Sql1 = "SELECT DISTINCT tblEcole.Abvr, tblEcole.NomEcole FROM tblEcole;"

StTarget = Rep1 & "EcolePELO" & "_" & MoisDate & ".xlsm"


Set xlBook = GetObject(StTarget)
'filename is the string with the link to the file ("C:/....blahblah.xls")

Set xlApp = GetObject(, "Excel.Application")
On Error GoTo 0
If xlApp Is Nothing Then
  Set xlApp = CreateObject("Excel.Application")
End If

'Make sure excel is visible on the screen
xlApp.Visible = True
xlBook.Windows(1).Visible = True

'xl.ActiveWindow.Zoom = 75

 sSheet = thedb(0)

'Define the sheet in the Workbook as XlSheet1
Set xlSheet1 = xlBook.Worksheets(1)



    With xlSheet1
     '.Name = "Modele"
      .Select "Modele"
      .Rows("1:2").Select
      .Copy
      .Name = sSheet
      .Select sSheet
      .Rows("1:1").Select
      ''''
      ' Bloc ici
      ''''
      .PasteSpecial **Paste:=xlPasteColumnWidths**, Operation:=xlNone, _
       SkipBlanks:=True, Transpose:=False
      .Range("B3").Select
      .Application.CutCopyMode = False
      .Selection.Copy
      .Range("B1:N1").Select
      .ActiveSheet.Paste
      .Range("A3:B266").Select
      .Application.CutCopyMode = False
      .App

    End With

       xlSheet1.aActiveSheet.Sheet (1)
      ' xlApp.ActiveSheet.Name = "Modele"
       xlSheet1.Sheets("Modele").Select
       xlSheet1.Application.ActiveWindow.SelectedSheets.Delete , True
       xlBook.Save , True
       xlBook.Close
       xlApp.Quit



Err_MCommande92_Click:
    vStatusBar = SysCmd(acSysCmdClearStatus)
    MsgBox Err.Number & " - " & Err.Description
    Resume Exit_Commande92_Click


Exit_Commande92_Click:
vStatusBar = SysCmd(acSysCmdClearStatus)

End Sub

枚举仅在Excel中定义。要查找枚举的值,请使用google<代码>枚举xlPasteColumnWidths提供以下结果:


因此,将
xlPasteColumnWidths
替换为
8

的值。问题在于您正在使用以下值:

With xlSheet1

      .Select "Modele"
      .Rows("1:2").Select
      .Copy
      .Name = sSheet
      .Select sSheet
      .Rows("1:1").Select
      ''''
      ' Bloc ici
      ''''
      .PasteSpecial **Paste:=xlPasteColumnWidths**, Operation:=xlNone, _
       SkipBlanks:=True, Transpose:=False
With的
表示该点之后的所有内容都与With关联。因此,您会得到类似于
xlSheet1.PasteSpecial…
,这有点非法,因为您只复制了前两行

长话短说,试着这样做:

.Rows("1:1").Select
Selection.PasteSpecial Paste:=8, Operation:=xlNone, SkipBlanks:=True, Transpose:=False

它可能会起作用。如果是这样,请找到一种方法来避免代码中的
Select
ActiveSheet

哪里会出现错误?在使用Paste的行上:=xlPasteColumnWidths访问应该理解
xlPasteColumnWidths
xlNone
因为您正在使用早期绑定-您正在使用
Dim xlApp as Excel.Application
。但是,也就是说,您还使用了后期绑定方法
setxlapp=CreateObject(“Excel.Application”)
。您是否从Access设置了对Excel的引用?查看您的代码后,我不知道您想做什么。根据我的计算结果:在
Rep1
路径中打开名为
EcolePELO
和今天日期的文件。按制表符顺序复制第一张图纸的第1:2行(图纸名称无关紧要)。将工作表重命名为尚未打开的
dao.recordset
?将列宽粘贴到第1行,即使是从第1:2行复制的列宽,也不会更改。复制单元格B3并粘贴到单元格B1:N1?最后删除工作表?好的,我有一个工作簿,它包含多张同一行的工作表。我想使用包含在工作簿中的模型制作相同格式的页面。我使用从wotkbook记录的Excel MAro格式的代码。所以我将代码放入Access,因为我使用Access将dato导出到电子表格方法。明白了吗?你真的用谷歌来查找枚举吗?好的,我放了一些枚举,比如tis,然后又收到了错误消息。请看这里如何避免谷歌-