我试图掌握何时可以,并且在编码时无法使用*
进行概括。
如果扩展无关紧要,我的意思是xfile.*
。
如果我想引用任何和所有excel文件,则另一个是*.xls
。
我不仅对文件感兴趣。我希望使用Washington*
和Oregon*
之类的内容,如果我想要工作簿中的所有工作表,无论后来发生什么,无论是This Month
,This Year
等等。
另一个级别是电子表格中单元格中的值。
我特别要求每一个,因为*
似乎在每种情况下都被区别对待。
感谢您的帮助。
编辑:
我遇到的问题的一个很好的例子就是这段代码:
If ActiveSheet.Name <> "City*" Then
code
End If
工作表名称的选项包括City MTD
,City YTD
,Country MTD
和Country YTD
(月初至今和年初至今,fyi)
我打开的表单是City MTD
,但我的程序仍然输入If-Statement。这使我相信*
不被视为通配符,而是字符串中的文字星号。
答案 0 :(得分:1)
以下是使用*
访问名称适合某种模式的所有工作表的方法:
Sub test()
Dim ws As Worksheet
Dim count As Long
For Each ws In ActiveWorkbook.Sheets
If LCase(ws.Name) Like "*data*" Then count = count + 1
Next ws
Debug.Print "There are " & count & " sheets with 'data' in their name"
End Sub
当我在一张名为&#34; Raw Data&#34;和另一个&#34;处理数据&#34; (以及其他一些不包含&#34;数据&#34;其中任何地方的表格)我得到:
There are 2 sheets with 'data' in their name
*
可用于多种用途,但有些限制。对于更复杂的问题,建议使用VBScript的正则表达式对象 - 也可以在VBA中使用(如果添加对项目的正确引用)。
答案 1 :(得分:0)
Range .Replace Method: UsedRange.Replace "test*", "NewValue"
Range .AutoFilter: Range("A:A").AutoFilter Field:=1, Criteria1:="test*"
Like Operator (compares strings): If Range("A1") Like "test*" Then
Files and Folders Methods:
Copy
CopyFile
CopyFolder
MoveFile
MoveFolder
DeleteFolder
DeleteFile
Dir Function (searches for files or folders)
ChDir Statement (changes current folder)
Kill Statement (deletes files from disk)
Application Methods
.GetSaveAsFilename (used for file extension only)
.GetOpenFilename (used for file extension only)
.Match "test*", Range("A:A"), 0 '(If match_type is 0 and lookup_value is text)
WorksheetFunction Methods:
.AverageIf and .AverageIfs
.CountIf and .CountIfs
.Find and .FindB (Range("A1").Find "*")
.Match
.Search and .SearchB (locate one text string within a 2nd string)
.SumIf and .SumIfs
.VLookup and .HLookup
FileDialog Object - .InitialFileName Property
VBScript.RegExp (or reference to "Microsoft VBScript Regular Expressions *")
Scripting.FileSystemObject CopyFile and DeleteFile Methods ("Microsoft Scripting Runtime")
可以escaped with a tilde (~) character:Range("A1").Find "~*"
找到*(.Find "~~"
找到〜)