A. excel如何用VBA在指定行后面插入一行,并把从录入窗体中获得的数据添加进去,求代码
给你个思路.
首先在类别列查找"五金",如果找到,然后从从此行开始向下循环,(可以用for each 在找到的单元格到芦迹此列的最后一个单元格),在循环体中用if进行测试B列单元格的内容,如果是"五金",则继续向一行,如果不是,则表示已经到末尾了,现在可以在陪岩并此插入枣茄下行.将你的内容分别输入到对应的单元格中即可.
如果没有找到"五金",那么你要么在最后追加,要么在第一行之前插入一行,这个就看你的个人意思了.
B. 在excel中用VBA如何实现对非空单元格行数的统计。
最雀凯隐好用孙尺工作表函数顷厅
Sub 统计非空单元格()
x = 0
For Each l In Rows
x = x + IIf(WorksheetFunction.CountA(l) > 0, 1, 0)
Next l
MsgBox x
End Sub
C. 在excel空白或某一行中插入新的一行,且只插入一次,不是空的时候自动往下一个插入,那VBA里面要怎么编写
你的意思不是说如果上下两行之间如果没有一个空行饥银隔开就插入一个空行,如果有空行就不插入空行?,按钮每按一次就自动在两个没有空行隔开的行插入一个空行.
如果我描述的是你的要求的话,操作步骤如下:
1.按ALT+ F11进入VBA编辑窗口.在窗口左边列表栏点击鼠标右键选此轿插入模块.然后粘贴下面代码到右边窗口.然后关闭VBA编辑窗口返回工作表
代码如下:
Sub inst()
For Each rng In Range("A1:A" & [A65536].End(xlUp).Row)
If rng <> "" And rng.Offset(1, 0) <> "" Then
rng.Offset(1, 0).Insert
Exit For
End If
Next
End Sub
2.在工作表合适的位置插入一个窗体按钮(注意是菜单->视图->工具栏->窗体里的按钮,不是控件工具箱里的命令按钮),然后按钮烂扒宴的指定宏指定为inst 这个宏即可.
D. 如何在VBA插入指定行数
代码运行后
代码如下:
Sub 插行()
Dim i%, n% '声明两个整型变量
For i = 22 To 2 Step -1 '注意裤扮大:插行删行都必须逆向遍历
n = Range("A" & i) - 1 '计算应插入的行数n
If n > 0 Then
缺雀 Rows(i & ":"胡竖 & i + n - 1).Insert '插入行
End If
Next
MsgBox "处理完毕", 64 '完毕时弹出提醒
End Sub
E. 如何用VBA实现在指定区域自动查找空白单元格,并按规则自动填充数值,多谢
col=range("C1").end(xltoright).column '找非空列 cells(3,col)即早历所想要单元格含睁让谈局
F. EXCEL中VBA或者函数怎么自动插入新数据
根据你图一数据及要求写了一段代码,看是不是满足要求:
1、运行前请备份原始数据表,切记!
2、为了便于检查,会自动在相关单元格写入公式。
3、代码直接放到图一的“水准测量记录”表的代码页中,如果写在模块中,请自行修改代码。代码运行后会生成图二的样子,只能运行一次,再次运行时必须保证数据格式是图一(原表)的格式。由于有几个数据是随机数,多次测试结果会不同。
4、默认图一E列是已知数据。
Sub 插入数据()
Dim i As Long
Dim k As Long
Dim n As Long
n = 8
k = 10
With ActiveSheet
For i = 11 To 65536
If .Cells(k, 4).Value - .Cells(i, 5).Value >= 0.2 And .Cells(k, 4).Value - .Cells(i, 5).Value <= 4.8 Then
.Range("C" & i) = "=$D$" & k & "-E" & i
Else
If .Cells(k, 4).Value - .Cells(i, 5).Value >= 4.8 Then
.Rows(i).Insert Shift:=xlDown
.Range("A" & i) = "ZD" & n + 1
.Range("C" & i) = "=Round(rand() * (4.8 - 4.2) + 4.2, 3)"
.Range("E" & i) = "=$D$" & k & "-C" & i
.Rows(i + 1).Insert Shift:=xlDown
.Range("B" & i + 1) = "=Round(rand() * (0.5 - 0.2) + 0.2, 3)"
.Range("D" & i + 1) = "=E" & i & "+B" & i + 1
ElseIf .Cells(k, 4).Value - .Cells(i, 5).Value <= 0.2 Then
.Rows(i).Insert Shift:=xlDown
.Range("A" & i) = "ZD" & n + 1
.Range("C" & i) = "=Round(rand() * (0.5 - 0.2) + 0.2, 3)"
.Range("E" & i) = "=$D$" & k & "-C" & i
.Rows(i + 1).Insert Shift:=xlDown
.Range("B" & i + 1) = "=Round(rand() * (4.8 - 4.2) + 4.2, 3)"
.Range("D" & i + 1) = "=E" & i & "+B" & i + 1
End If
k = i + 1
n = n + 1
i = i + 1
End If
If .Range("E" & i + 1) = "" Then Exit For
Next i
End With
End Sub
G. VBA 一维数组如何增加一个数据或者更多数据
用咐轮铅For 循环就可以,例如,第一行有桐指数据,用下程序就可衡好以把A~F列的数据放到数据中。
Sub tt()
Dim Arry(50)
For i = 0 To 5
Arry(i) = Cells(1, i + 1)
Next
End Sub
H. VBA 添加数据
方法1:A列没有任何数据时,Row获得冲芦枣的最后一行有数据的行号是1,数据会从row+1行开始,也就是第二行,要想从第一行写入数据要用代码判断调整.(代码中没有做这个判断哗漏)
Private Sub CommandButton1_Click()
With Sheets(1)
Row = .Range("A65536").End(xlUp).Row
.Range("A" & Row + 1).Value = TextBox1.Value
End With
End Sub
方法2:定义了一个公共变量N来记录有数据的行.每点一散拆次按钮N变量加1.
Dim N As Long
Private Sub CommandButton1_Click()
N = N + 1
Sheets(1).Range("A" & N).Value = TextBox1.Value
End Sub