excelperfect 在C语言中,经典的函数printf用来格式化输出内容,在格式字符串中包含了要原样输出的字符和占位符,占位符一般由%和指定转换格式组成,例如: printf(“i = %d, j = %d”, 1, 2) 输出: i = 1, j = 2 在Python中,可以使用“{}”来占位,并在右侧指定相应的值,例如: >>> “{0}, {1} 和 {2}”.format(“一”, “二”, “三”) 输出: 一, 二和三 在VBA中,我通常使用debug.print在VBE中输出结果,或者使用MsgBox函数来显示信息。其实,使用VBA自定义函数,也可以模拟类似C语言的占位输出。 假设自定义函数为ImitatePrint,我输入: ImitatePrint('我的%1是%2', ' 则会输出: Excel 其中,%1和%2是占位符,分别代表要在此处输入的数据。当然,也可以将它们调换,例如: ImitatePrint('我的%2是%1', ' 则会输出: 我的完美Excel是微信公众号 自定义函数ImitatePrint的代码如下: '代码来源自《VBA高级开发指南》 Public Function ImitatePrint( _ ByVal strIn As String, _ ParamArray varItems() As Variant) _ As String '错误处理 On Error GoTo Handleerr '声明变量 Dim intPos As Integer Dim strReplace As String Dim intI As Integer '循环用户输入的数据 For intI = LBound(varItems) ToUBound(varItems) '依次循环占位符位置 strReplace = '%' & (intI+ 1) intPos = InStr(1, strIn, strReplace) '如果找到,则使用相对应的值替换 If intPos > 0 Then strIn = Left$(strIn, intPos - 1)& _ varItems(intI) & Mid$(strIn,intPos + _ Len(strReplace)) End If Next intI '返回结果 ExitHere: ImitatePrint = strIn Exit Function '发生错误则给出提示 Handleerr: Select Case Err.Number Case Else MsgBox '错误:' & Err.Description & _ ' (' & Err.Number& ')' |
|