Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Ms access 在VBA中更改Excel工作表名称_Ms Access_Vba_Ms Access 2010 - Fatal编程技术网

Ms access 在VBA中更改Excel工作表名称

Ms access 在VBA中更改Excel工作表名称,ms-access,vba,ms-access-2010,Ms Access,Vba,Ms Access 2010,我需要用文本框数据更改工作表“USS IWO JIMA”,换句话说,工作表的名称应该来自文本框。我试过了,但做不到 Set objApp=New Excel.Application “这是新的”您的excel电子表格文件位于此处 设置objBook=objApp.Workbooks.Add(strTemplatePath) '要导出到的工作表的名称 设置objApp=objBook.Parent Set objSheet=objBook.Worksheets(“USS IWO JIMA”) 您可

我需要用文本框数据更改工作表“USS IWO JIMA”,换句话说,工作表的名称应该来自文本框。我试过了,但做不到

Set objApp=New Excel.Application
“这是新的”您的excel电子表格文件位于此处
设置objBook=objApp.Workbooks.Add(strTemplatePath)
'要导出到的工作表的名称
设置objApp=objBook.Parent
Set objSheet=objBook.Worksheets(“USS IWO JIMA”)
您可以这样做:

Public Sub RenameWorkSheet()

    Dim xls     As Excel.Application
    Dim wkb     As Excel.Workbook
    Dim wks     As Excel.Worksheet

    Set xls = New Excel.Application
    Set wkb = xls.Workbooks.Open("c:\test\workbook1.xlsx")
    Set wks = wkb.Worksheets(1)

    wks.Name = "My New Name"
    wkb.Close True

    Set wks = Nothing
    Set wkb = Nothing

    xls.Quit

    Set xls = Nothing

End Sub
请注意,不允许使用任何名称:

Public Function TrimExcelSheetName( _
  ByVal strSheetName As String) _
  As String

' Replaces characters in strSheetName that are
' not allowed by Excel in a sheet name.
' Truncates length of strSheetName to clngSheetNameLen.
'
' 2000-12-07. Gustav Brock, Cactus Data ApS, Copenhagen
' 2002-05-22. Extended selection of invalid chars.
'             Replaced string concatenating with Mid().

  ' No special error handling.
  On Error Resume Next

  ' ' String containing all not allowed characters, minimum.
  ' Const cstrInValidChars  As String = "\/:*?"
  ' String containing all not allowed characters, extended.
  Const cstrInValidChars  As String = "\/:*?""<>|[]"
  ' Replace character for not allowed characters.
  Const cstrReplaceChar   As String * 1 = "-"
  ' Maximum length of a sheet name in Excel.
  Const clngSheetNameLen  As Long = 31

  Dim lngLen    As Long
  Dim lngPos    As Long
  Dim strChar   As String
  Dim strTrim   As String

  ' Strip leading and trailing spaces.
  strTrim = Left(Trim(strSheetName), clngSheetNameLen)
  lngLen = Len(strTrim)
  For lngPos = 1 To lngLen Step 1
    strChar = Mid(strTrim, lngPos, 1)
    If InStr(cstrInValidChars, strChar) > 0 Then
      Mid(strTrim, lngPos) = cstrReplaceChar
    End If
  Next

  TrimExcelSheetName = strTrim

End Function
Public函数名(_
ByVal strSheetName(字符串名称)_
作为字符串
'替换strSheetName中
Excel不允许在工作表名称中使用“”。
'将strSheetName的长度截断为clngSheetNameLen。
'
' 2000-12-07. Gustav Brock,仙人掌数据ApS,哥本哈根
' 2002-05-22. 无效字符的扩展选择。
'将字符串连接替换为Mid()。
'没有特殊的错误处理。
出错时继续下一步
“”字符串,至少包含所有不允许的字符。
'Const cstrInValidChars As String=“\/:*?”
'字符串,包含所有不允许的字符,已扩展。
Const cstrInValidChars As String=“\/:*?”“|[]”
'为不允许的字符替换字符。
Const cstreplacechar作为字符串*1=“-”
'Excel中工作表名称的最大长度。
Const clngSheetNameLen,长度=31
幽幽幽幽
暗LNGPO尽可能长
作为字符串的Dim strChar
作为字符串的Dim strTrim
'带前导和尾随空格。
strTrim=左侧(装饰件(strSheetName),clngSheetNameLen)
lngLen=Len(strTrim)
对于LNGPO=1至lngLen步骤1
strChar=Mid(strTrim,lngPos,1)
如果InStr(cstrInValidChars,strChar)>0,则
Mid(strTrim,lngPos)=cstrReplaceChar
如果结束
下一个
TrimExcelSheetName=strTrim
端函数