gpt4 book ai didi

excel - 减去变体

转载 作者:行者123 更新时间:2023-12-04 21:49:43 25 4
gpt4 key购买 nike

我无法让变体减去。我从电子表格中提取数据,如果一个单元格表示一个短语,那么我需要代码从另一个单元格中减去一个单元格。如果单元格没有陈述一个短语,那么我需要它将一个单元格复制到另一个单元格。我可以让代码运行,但没有任何 react 。

Private Sub CommandButton1_Click()

Dim x As Variant, y As Variant, z As Variant, a As Integer, B As String

'getting values for data
x = Range("D2:D48").Value
y = Range("I2:I48").Value
z = Range("E2:E48").Value

B = "Total ISU Days: "
'The the cells are empty then subtract. This is not what I wanted to do but I can't think of extracting strings from variants.
If IsEmpty(Range("D2:D48").Value) = True Then
a = y - z
End If

Range("N2:N48").Value = a
Range("M2:M48").Value = B

End Sub

最佳答案

x = Range("D2:D48").Value
y = Range("I2:I48").Value
z = Range("E2:E48").Value


一个 Variant包含有关其子类型的元数据。在这种情况下, x , y , 和 z都是变体数组。

a = y - z


该表达式的右侧根本无法计算,因为 {array1} - {array2}没有任何意义:运算符(算术或逻辑)处理值,而不是值数组。

什么是 a应该是?声明为 As Integer ,因此它的值上限为 32,767(应该是 Long )。如果您打算将 y 中的所有值相加并从 z 中所有值的总和中减去该总数,那么你需要更明确地说明你是如何做到这一点的——你可以使用 Application[.WorksheetFunction].Sum加起来:
sumOfY = Application.Sum(Range("I2:I48"))
sumOfZ = Application.Sum(Range("E2:E48"))
a = sumOfY - sumOfZ

接着...

Range("N2:N48").Value = a


这将使 a 的值在 N2:N48 中的每个单元格中范围 - 这真的是你的意思吗?

或者,也许您打算这样做?
Range("N2:N48").Formula = "=IF(D2="""",I2-E2,0)"

这将使 N2:N48 中的每个单元格计算 I 之间的差异和 E对于 D 的每一行是空的...实际上不需要任何 VBA 代码来执行此操作。

关于excel - 减去变体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57009916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com