再重新读出来。
不过我觉得太麻烦了。而且写的时候会修改工作表。不是很恰当。
解答:Application.CountA(Range("C:C"))返回除去无值单元格的所有单元格的数量。
Sheet1.range("C1").End(xlDown).Row返回第一次遇到空单元格前的单元格的数量。
(注:当C列有空白单元格时用:
myEndRow=sheets("sheet1").range("C65536").End(xlUp).row)
结论:Sub aa()
x1 = Sheet1.Range("C3").End(xlDown).Row
MsgBox x1
end sub
这就对了。谢谢各位!
回应:推荐你用
Columns(1).SpecialCells(xlCellTypeConstants).Count
045.如何禁止输入空格
在Excel中如何通过编辑“有效数据”来禁止录入空格?烦请大侠们费心解答。不胜感激。
解答:有效xìng公式。=COUNTIF(A1,"* *")=0
(注:COUNTIF(A1,"* *") 在单元格有空格时结果为1,没有空格时结果为0
如希望第一位不能输入空格:countif(a1," *")=0
如希望最后一位不能输入空格:countif(a1,"* ")=0)
046.如何判断单元格中单词的数量?
比如我在A1中输入“you are a good boy”如何判断单词为5个?
解答:=LEN(E12)-LEN(SUBSTITUTE(E12," ",""))+1
(注:方法很巧妙用trim把前后的空格去掉。如果有标点符号或者两个词之间的空格数大于1个就不好办了)
047.如何取数
表一有数据,要求表二中数据为取一行表一数据,空一行。
解答:
Sub test()
On Error Rescom Next
Application.ScreenUpdating = False
For i = 1 To Sheets(1).UsedRange.Rows.Count
Sheets(1).Rows(VBA.Trim(VBA.Str(i)) + ":" + VBA.Trim(VBA.Str(i))).Copy
Sheets(2).Activate
Sheets(2).Rows(VBA.Trim(VBA.Str(i * 2 - 1)) + ":" + VBA.Trim(VBA.Str(i * 2 - 1))).Select
ActiveSheet.Paste
Next i
Application.ScreenUpdating = True
End Sub
048.如何通过VBA编程将符合条件的数据库记录输入到EXCEL中
现在有access格式的数据表 TEST
货号 货名 规格 单价....
1-01 货品1 1M 250.00
1-02 货品2 4Kg 100.00
................
N-99 货品N 999 999.99
现在我想在EXCEL的单元格中输入货号,通过VBA代码自动从数据表中查找出相应的记录,并在相邻的列分别自动录入货品、规格、单价等内容,从而实现EXCEL自动数据录入。请问这VBA代码应如何写?谢谢!
解答:Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rs As New ADODB.Recordset
Dim Query As String
Dim Cnn As String
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Cnn = "Driver=Microsoft Access Driver (*.mdb);DBQ=C:\*.mdb"
Query = "SELECT * FROM TEXT WHERE 货号='" & Target & "'"
With Rs
.Open Query, Cnn, adOpenStatic, adLockReadOnly
If .RecordCount = 0 Then
MsgBox "没有此货号!"
Target.ClearContents
Else
Target.CopyFromRecordset Rs
End If
.Close
End With
With Application
.ScreenUpdating = True
.EnableEvents = True