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