在表 1 中选择数据和参数。
表 2 包含一个汇总表。告诉我如何计算所选数据和参数的交集之和? (注意:选定的选项 3 和数据 3、4、5 = 单元格总和)。谷歌表格
我已经联系过这个宏(复选框宏)并收到了全面的答复:
For i = 1 To 6
If Controls("CheckBox" & i) = False Then
MsgBox "TEST", vbOKOnly
End If
Next
但我的 Excel 暂时不想运行它,VBA 编辑器报告“控件未定义”,请帮我解决这个问题。继续搜索我的问题,我发现在同一个英语网站https://stackoverflow.com/a/57983985/27667238 上有一个答案,于 2019 年给出,但我的英语水平不允许我立即找到答案。
一切顺利!实际的问题是:Excel(与 VBA 一起)可以使当我在单元格 A1 中输入一些文本并且行(文本)长度达到 30 个字符时,光标本身移动到单元格 A2 并且我继续输入文本。是否对文字的完整性进行了检查?
有一段代码是我几乎不用 BASIC 编程就组装的,更不用说 VBA 了。但有任务,需要实现,而且,我也很想弄清楚。任务是这样的:代码中有一个数组,其中有三个值,这些值是宏应该按照它们在数组中出现的顺序插入到新创建的单元格中的值。也就是说,最终的视图应该是这样的:
代码:
Sub InsertRowsAtIntervalsWithValues()
'Updateby Extendoffice
Dim Rng As Range
Dim xInterval As Integer
Dim xRows As Integer
Dim xRowsCount As Integer
Dim xNum1 As Integer
Dim xNum2 As Integer
Dim WorkRng As Range
Dim xWs As Worksheet
Dim i As Integer
Dim j As Integer
Dim x As Integer
Dim dataArray() As Variant
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
xRowsCount = WorkRng.Rows.Count
xInterval = Application.InputBox("Enter row interval. ", xTitleId, 3, Type:=1)
xRows = 3
x = 2
j = 0
' Вставляем текстовые значения в массив dataArray
ReDim dataArray(xRows - 1) ' Размер массива равен количеству строк
dataArray(0) = "Зачет аванса"
dataArray(1) = "Гарантийное удержание"
dataArray(2) = "Итого к оплате"
' ... (остальной код макроса)
xNum1 = WorkRng.Row
xNum2 = xRows + xInterval
Set xWs = WorkRng.Parent
' Вставляем строки и заполняем их данными
For i = 1 To xRowsCount ' Изменили условие цикла
xWs.Range(xWs.Cells(xNum1, WorkRng.Column), xWs.Cells(xNum1 + xRows - 1, WorkRng.Column)).Select
Application.Selection.EntireRow.Insert
' Заполняем строки данными из dataArray
If j <= x Then ' Итерируем по элементам массива
xWs.Cells(xNum1 + j, WorkRng.Column).Value = dataArray(j)
j = j + 1
Else
j = 0
End If
xNum1 = xNum1 + xNum2
Next
End Sub