我有一个Excel工作簿,该工作簿在同一字段中包含几张纸。我想从型号表布局。为了找到代码,我创建了一个宏。当我在Excel中运行它时,它可以正常工作。我正在访问访问中的代码,并收到错误消息:
编译错误命名参数未找到
这是零件中的代码(按钮(的详细信息。
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:PELOPELO 2018-2019FichiersInscriptionParent"
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。Enum xlPasteColumnWidths
给您这些结果:
枚举xlpastecolumnwidths
因此,用8
xlPasteColumnWidths
问题是您正在使用以下内容:
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
表示点之后的所有内容都与之相处。因此,您会得到类似xlSheet1.PasteSpecial ...
的东西,这有点非法,因为您只复制了前2行。
长话短说,尝试这样:
.Rows("1:1").Select
Selection.PasteSpecial Paste:=8, Operation:=xlNone, SkipBlanks:=True, Transpose:=False
它可能应该起作用。如果确实如此,请找到一种方法来避免代码中的Select
和ActiveSheet
。