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_Vba - Fatal编程技术网

有没有办法复制excel文件名的前几个字符并粘贴到工作表中?

有没有办法复制excel文件名的前几个字符并粘贴到工作表中?,excel,vba,Excel,Vba,我想将excel文件名的前7个字符复制到汇总表中的一列中。我的文件名通常类似于“PR\u 0001\u nil\u officer.xls”。我想复制“PR_0001”并将其粘贴到工作表的G2:G6列范围内。另外,我对VBA非常陌生,这使得这个看似简单的任务对我来说更加复杂lol 使用thiswoolk.Name获取工作簿名称 使用获取该名称的左7个字符 将其写入所需工作表中的范围 ThisWorkbook.Worksheet("Summary").Range("G2:G6").Value =

我想将excel文件名的前7个字符复制到汇总表中的一列中。我的文件名通常类似于“PR\u 0001\u nil\u officer.xls”。我想复制“PR_0001”并将其粘贴到工作表的G2:G6列范围内。另外,我对VBA非常陌生,这使得这个看似简单的任务对我来说更加复杂lol

  • 使用
    thiswoolk.Name
    获取工作簿名称
  • 使用获取该名称的左7个字符
  • 将其写入所需工作表中的范围

    ThisWorkbook.Worksheet("Summary").Range("G2:G6").Value = Left$(ThisWorkbook.Name, 7)
    

请注意汇总表在同一工作簿中欢迎!您是否尝试过搜索过去的vba问题?而
$
返回字符串值:)@JvdV实际上是的,但是Excel是如此的转储,以至于如果
Left$
的结果实际上是像
0123456
那样的数字,它会自动将字符串
Left$(“0123456AAAAA”,7)
转换回一个数字,即使我使用
Left$
。因此,在这种情况下,单元格值将是数值
123456
$
对单元格没有影响。@Peh,很有趣!ThisWorkbook.Worksheet(“Summary”).Range(“G2:G6”).value=CStr(左$(ThisWorkbook.Name,7))work?@JvdV显然不行。Excel也将此字符串转换为数字。
。Text
也不适用于多单元格范围,因此唯一的解决方案是
范围(“G2:G6”)。NumberFormat=“@”
在插入值之前。否则,作为字符串的数字总是自动转换为数字。@Peh,bummer!我想在这种情况下,人们也可以使用
“”
策略。
ThisWorkbook.Worksheet(“Summary”).Range(“G2:G6”).Value=“”&Left$(ThisWorkbook.Name,7)
很高兴听到这个消息。@Mayokun,如果您觉得您的问题已经得到了回答,请将此标记为“已回答”!
Option Explicit

Sub Test()

    Dim strName As String
    Dim wsSummary As Worksheet

    With ThisWorkbook

        Set wsSummary = .Worksheets("Summary")

        strName = Left(.Name, 7)

        wsSummary.Range("G2:G6").Value = strName

    End With

End Sub