在大多数编程语言中,您可以在输出期间将字符串与变量混合和匹配.但是,我似乎无法找到一个好方法.这是我的代码:
Prompt A,B
?(A^2+B^2)->C
If iPart(C)?C
Then
Disp "C = ?(",C
Else
Disp "C = ",C
End
Goto ED
Label ED
Run Code Online (Sandbox Code Playgroud)
不幸的是,使用此代码,它最终打印如下:
A? 3
B? 5
C = ?(
34
Done
Run Code Online (Sandbox Code Playgroud)
这不是我想要的.我希望能够打印C = ?(34),但我目前找不到任何混合变量和字符串的方法.任何帮助,将不胜感激.
我正在尝试为我一直在研究的广泛的VBA程序创建路径选择用户界面,但我似乎无法获得我想要的省略号文本框.这是一个非常常见的功能,尤其是在选项表中.这是我想要获得的一个例子,直接来自VBA选项面板:
我很乐意找到一种在Userform中获得相同功能的方法.到目前为止,我发现的唯一解决方案是使用一个启用了省略号箭头选项的组合框.但是,似乎没有一种明显的方法可以使用组合框箭头的激活来运行对话框,也似乎没有办法让它看起来像一个组合框.最后,我在文本框下方使用了一个按钮,但我真的更喜欢这样做的一种不那么笨重的方式.
任何解决方案将不胜感激.
在您声称这可能是重复之前,请听我说。
我正在尝试为我的公司编写一些代码,以便能够将数据解析到服务器上,为此,我需要使用科学记数法。
我已经想出了如何使用 将常规数字转换为科学记数法Format(),但我的问题是我需要让 Excel 显示 0.0000e+00,而不是 0.00e+00
我的代码非常基本:
Sub ConvertScientific()
Dim org, conv
If IsNumeric(Range("a2").Value) = True Then
org = Range("a2").Value
Else
MsgBox ("This is not a valid number!")
End If
conv = Format(org, "0.0000E+00")
Range("b2").Value = conv
End Sub
Run Code Online (Sandbox Code Playgroud)
其中大部分内容甚至不需要触摸,但我遇到的问题是,即使我已将格式定义为"0.0000e+00",它仍然最终导致0.00e+00格式。
这对我的程序非常重要,主要是因为它旨在自动运行而无需定义电子表格,其中某些单元格的十进制值设置为 4。我知道可以拥有我想要的格式,但我能够做到的唯一方法是手动进行。
非常感谢任何有建议的人。
编辑:
我发现重新格式化的一种可能方法是使用该Range().NumberFormat属性,但有两行代码似乎很愚蠢,其中一行就足够了。如果有人可以解释为什么我的代码没有按照我的理解工作,请随时让我知道 1+ 和/或有效答案。
我有一个程序应该从SQL数据库读取数据并向Excel报告。它可以在32位计算机上按预期工作,但是由于我移至64位工作环境,因此程序无法运行。这是我的代码示例(返回的第一个错误):
Private Sub SearchBox_Change()
ResultBox.Clear
Call CompileQuery
'If the query is empty
If SearchBox.Value = "" Then
NumShowingLabel = "Showing 0 of 0 Results"
ResultBox.Clear
GoTo noSearch
End If
'Open a new query with varQuery
With varRecordset
.ActiveConnection = varConnection
.Open varQuery
End With
'Set NumShowingLabel
If varRecordset.RecordCount > varMaxResults Then
NumShowingLabel = "Showing 60 of " & varRecordset.RecordCount & " Results"
Else
NumShowingLabel = "Showing " & varRecordset.RecordCount & " of " & varRecordset.RecordCount & " Results"
End If …Run Code Online (Sandbox Code Playgroud)