我没有VB的任何培训,我只是使用我在网上找到的内容来修改我的代码。
我有一个ActiveX命令按钮下面的代码(请原谅它,如果是多余的),它允许我从Excel电子表格(MS Office 2007)中的特定单元格中绘制值,并使用这些值作为文件名的一部分来保存它指定的文件夹。但是,某些单元格中包含文件名中不允许的字符(例如/:*?“<> |)。
如何修改下面的代码,用短划线(“ - ”)替换这些禁止的字符?
Private Sub CommandButton1_Click()
Dim Path As String
Dim FileName1 As String
Dim FileName2 As String
Dim FileName3 As String
Dim FileName4 As String
Dim FileName5 As String
Dim FileName6 As String
Dim FileName7 As String
Dim str As String, strLeft As String
str = Range("O7")
strLeft = Left(str, 9)
FileName1 = strLeft
FileName2 = Range("Q7")
FileName3 = Range("W7")
FileName4 = Range("A7")
FileName5 = Range("I7")
FileName6 = Range("D7")
FileName7 = Range("E7")
Path = "C:\Users\Desktop\CURRENT PROJECTS\CatchAll\"
ActiveWorkbook.SaveAs FileName:=Path & FileName1 & "_" & FileName2 & "_" &
FileName3 & "_" & FileName4 & "_" & FileName5 & "_" & FileName6 & "_" &
FileName7 & "_" & ".xls", FileFormat:=xlCSV
End Sub
答案 0 :(得分:0)
用“ - ”替换所有字符可能不是一个好主意。您最终可能会得到一个很长的文件名。
我使用这个简单的函数来清理任何字符串以获得正确的文件名。希望这对你有帮助吗?
import webapp2
from webapp2_extras import jinja2
import appengine_config
import handlers
import gae_mini_profiler.profiler
class MainHandler(handlers.BaseRequestHandler):
def get(self):
user = separate_file.get_user_and_logins(self)
templateid = 'home.html'
context = {
'user': user,
}
self.render(templateid, context)
app_config = {
'webapp2_extras.jinja2.default_config': {
'globals': {
'profiler_includes': gae_mini_profiler.templatetags.profiler_includes,
},
},
}
app = webapp2.WSGIApplication([
('/', MainHandler)], config=app_config, debug=True)
app = gae_mini_profiler.profiler.ProfilerWSGIMiddleware(app)
答案 1 :(得分:0)
可能会构建一个替换不需要的字符的函数:
Function RepCh(str As String)
myarray = Array("/", ":", "*", "?", Chr(34), "<", ">", "|")
For i = LBound(myarray) To UBound(myarray)
If i = LBound(myarray) Then
NewStr = Replace(str, myarray(i), "-")
Else
NewStr = Replace(NewStr, myarray(i), "-")
End If
Next i
RepCh = NewStr
End Function
那么你的字符串变量将是
Filename2 = RepCh(Range("Q7").value) ' or RepCh(cstr(Range("Q7").value))
但我不知道所有被拒绝的角色,请查看并将其添加到&#34; myarray&#34;