我正在开发一个在线编译器,这个代码可以工作:
Sub Main()
Dim builder As New System.Text.StringBuilder
For i As Integer = 1 to 54
builder.Append(i & " = " & ConvertToLetter(i) & vbCrLf)
Next
Console.WriteLine(builder)
End Sub
但是,如果将Console.WriteLine替换为“Print”,则在编译时会出现此错误:
/home/cg/root/main.vb(11,11):error VBNC30518:CHANGEME
有人可以解释为什么会这样吗?顺便说一句,如果它可以帮助你,ConvertToLetter是微软的通用转换(列)到字母功能。它返回一个字符串。
答案 0 :(得分:1)
这是两个不同的功能:
Console.Writeline - >字符串输出到控制台
打印 - >将显示格式的数据写入顺序文件
请参阅:https://msdn.microsoft.com/en-us/library/office/gg264278.aspx
答案 1 :(得分:1)
你有vba和vb.net,所以我不确定你到底在找什么。如果您要将其打印到VBA中的即时窗口,可以使用
Debug.Print builder
虽然VBA中没有stringbuilder,但您必须将其作为字符串处理。
要从VBA中的号码中获取一封信,您可以使用此
Function Col_Letter(lngCol As Long) As String
Dim vArr
vArr = Split(Cells(1, lngCol).Address(True, False), "$")
Col_Letter = vArr(0)
End Function
在VB.NET中你可以做到
Debug.Print(builder)
你必须使用
Imports System.Diagnostics
以下是VB.NET的更多信息,这里有更多信息。
How do I output code while debugging in Visual Basic 2010?
这是我使用的vb.net转换为字母功能。
private String Number2String(int number, bool isCaps)
{
Char c = (Char)((isCaps ? 65 : 97) + (number - 1));
return c.ToString();
}