- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经构建了一个简单的函数,但它需要大约 11-12 个具有相同整数类型的变量。每次我尝试使用超过 10 个变量时,第一个变量经常出错,而其他变量却计算正确。如果我将变量数量减少到 10 个,它们都是正确的。这是否意味着vba一次只能存储10个相同类型的变量?或者这是我的电脑的限制:))
这是我的代码,btb 返回错误的值,而其他值是正确的,但是如果我删除变量“a”以及与其相关的所有代码,则 btb 返回正确的值
Sub regionCount()
Dim btb, dbb, hn, ntb, dnb, tnbBS, tnbNS, hcm1, hcm2, hcm3, a As Integer
btb = dbb = hn = dnb = tnbBS = tnbNS = hcm1 = hcm2 = hcm3 = a = 0
For Each mycell In Worksheets(1).Range("E2:E382")
If mycell.Value = "Khu vuc Bac Trung Bo" Then
btb = btb + 1
ElseIf mycell.Value = "Khu vuc Dong Bac Bo" Then
dbb = dbb + 1
ElseIf mycell.Value = "Khu vuc Ha Noi" Then
hn = hn + 1
ElseIf mycell.Value = "Khu vuc Nam Trung Bo" Then
ntb = ntb + 1
ElseIf mycell.Value = "Khu vuc Dong Nam Bo" Then
dnb = dnb + 1
ElseIf mycell.Value = "Khu vuc Tay Nam Bo - Bac song hau" Then
tnbBS = tnbBS + 1
ElseIf mycell.Value = "Khu vuc Tay Nam Bo - Nam song hau" Then
tnbNS = tnbNS + 1
ElseIf mycell.Value = "Khu vuc TPHCM_1" Then
hcm1 = hcm1 + 1
ElseIf mycell.Value = "Khu vuc TPHCM_2" Then
hcm2 = hcm2 + 1
ElseIf mycell.Value = "Khu vuc TPHCM_3" Then
hcm3 = hcm3 + 1
ElseIf mycell.Value = "-- None --" Then
a = a + 1
End If
Next mycell
Range("C5").Value = btb
Range("d5").Value = dbb
Range("e5").Value = hn
Range("f5").Value = ntb
Range("g5").Value = dnb
Range("h5").Value = tnbBS
Range("i5").Value = tnbNS
Range("j5").Value = hcm1
Range("k5").Value = hcm2
Range("l5").Value = hcm3
Range("m5").Value = a
结束子
最佳答案
你的陈述
btb = dbb = hn = dnb = tnbBS = tnbNS = hcm1 = hcm2 = hcm3 = a = 0
应该是
btb = 0
dbb = 0
hn = 0
dnb = 0
tnbBS = 0
tnbNS = 0
hcm1 = 0
hcm2 = 0
hcm3 = 0
a = 0
<小时/>
考虑该声明
a = b = c
这被解释为
a = (b = c)
其中(b = c)
是逻辑表达式。因此,如果 b
与 c
的值相同(如果变量全部保留为 0
的默认初始化,则结果会如此)那么a
将被设置为True
(即-1
)
您的语句布局方式会将最左边的值设置为 -1(如果行中有奇数个变量)或 0(如果行中有偶数个变量)。
<小时/>还需要注意的是
Dim btb, dbb, hn, ntb, dnb, tnbBS, tnbNS, hcm1, hcm2, hcm3, a As Integer
相当于
Dim btb As Variant, dbb As Variant, hn As Variant, ntb As Variant, dnb As Variant, _
tnbBS As Variant, tnbNS As Variant, hcm1 As Variant, hcm2 As Variant, _
hcm3 As Variant, a As Integer
这不一样
Dim btb As Integer, dbb As Integer, hn As Integer, ntb As Integer, dnb As Integer, _
tnbBS As Integer, tnbNS As Integer, hcm1 As Integer, hcm2 As Integer, _
hcm3 As Integer, a As Integer
关于vba - vba 的单个子/函数中可以使用多少个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48162623/
C语言sscanf()函数:从字符串中读取指定格式的数据 头文件: ?
最近,我有一个关于工作预评估的问题,即使查询了每个功能的工作原理,我也不知道如何解决。这是一个伪代码。 下面是一个名为foo()的函数,该函数将被传递一个值并返回一个值。如果将以下值传递给foo函数,
CStr 函数 返回表达式,该表达式已被转换为 String 子类型的 Variant。 CStr(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CSng 函数 返回表达式,该表达式已被转换为 Single 子类型的 Variant。 CSng(expression) expression 参数是任意有效的表达式。 说明 通常,可
CreateObject 函数 创建并返回对 Automation 对象的引用。 CreateObject(servername.typename [, location]) 参数 serv
Cos 函数 返回某个角的余弦值。 Cos(number) number 参数可以是任何将某个角表示为弧度的有效数值表达式。 说明 Cos 函数取某个角并返回直角三角形两边的比值。此比值是
CLng 函数 返回表达式,此表达式已被转换为 Long 子类型的 Variant。 CLng(expression) expression 参数是任意有效的表达式。 说明 通常,您可以使
CInt 函数 返回表达式,此表达式已被转换为 Integer 子类型的 Variant。 CInt(expression) expression 参数是任意有效的表达式。 说明 通常,可
Chr 函数 返回与指定的 ANSI 字符代码相对应的字符。 Chr(charcode) charcode 参数是可以标识字符的数字。 说明 从 0 到 31 的数字表示标准的不可打印的
CDbl 函数 返回表达式,此表达式已被转换为 Double 子类型的 Variant。 CDbl(expression) expression 参数是任意有效的表达式。 说明 通常,您可
CDate 函数 返回表达式,此表达式已被转换为 Date 子类型的 Variant。 CDate(date) date 参数是任意有效的日期表达式。 说明 IsDate 函数用于判断 d
CCur 函数 返回表达式,此表达式已被转换为 Currency 子类型的 Variant。 CCur(expression) expression 参数是任意有效的表达式。 说明 通常,
CByte 函数 返回表达式,此表达式已被转换为 Byte 子类型的 Variant。 CByte(expression) expression 参数是任意有效的表达式。 说明 通常,可以
CBool 函数 返回表达式,此表达式已转换为 Boolean 子类型的 Variant。 CBool(expression) expression 是任意有效的表达式。 说明 如果 ex
Atn 函数 返回数值的反正切值。 Atn(number) number 参数可以是任意有效的数值表达式。 说明 Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧
Asc 函数 返回与字符串的第一个字母对应的 ANSI 字符代码。 Asc(string) string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。
Array 函数 返回包含数组的 Variant。 Array(arglist) arglist 参数是赋给包含在 Variant 中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则
Abs 函数 返回数字的绝对值。 Abs(number) number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。
FormatPercent 函数 返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 FormatPercent(expression[,NumDigitsAfterD
FormatNumber 函数 返回表达式,此表达式已被格式化为数值。 FormatNumber( expression [,NumDigitsAfterDecimal [,Inc
我是一名优秀的程序员,十分优秀!