主页 > 科技生活 >怎样彻底治疗口臭_在excel中用VBA编程取数,引用路径为D\[明细.xls]Sheet1'!A1,怎么能将这个引用地址转换为cells(1,1)的形 >

怎样彻底治疗口臭_在excel中用VBA编程取数,引用路径为D\[明细.xls]Sheet1'!A1,怎么能将这个引用地址转换为cells(1,1)的形

在excel中用VBA编程取数,引用路径为D:\[明细.xls]Sheet1'!A1,怎么能将这个引用地址转换为cells(1,1)的形
'使用workbook对象来格。如下

'声明Excel相关
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook

Set xlApp = New Excel.Application
'获取指定excel文件
Set xlBook = xlApp.Workbooks.Open(文径)

Dim obSheet As Excel.Worksheet
'获取指定sheet
Set obSheet = xlBook.Worksheets(1)

Dim ss As String
'获取指定单元格的内容
ss = obSheet.Cells(1, 1)
'内容显示
MsgBox (ss)
在Excel vba 中,我打算在一个格内输入内容,只有该内容为整数时才放行,请高手指教该如何判断
这为什么VBA呢?选择你要的单元格区域,数据有效性择整数。确定
或者数据有效性,自定义=a1=int(a1)确定,注里的A1写你选择的区域的左上角单元格
如果非用VBA,代码如下,用单元格事件完成
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value <> Int(Target.Value) Then
Application.EnableEvents = False
Target.ClearContents
MsgBox "请输入整数!"
Target.Select
Application.EnableEvents = True
End If
End Sub追问

我实际上是已经做好了一个窗体,里面有一个文本框,想向文本框中输入整数,按您的思路我做了部分修改:if textbox1.value <> int(textbox1.value) then结果提示编译错误。我不明白<>的用法追答

是有窗体呀,控件不只是一个吧?
代码如下
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim i, n
i = TextBox1.Value
If Val(i)Int(Val(i)) Or n = IsNumeric(i) Then
MsgBox "请输入整数"
TextBox1.Value = ""
Exit Sub
End If
Range("A1") = i
End Sub
这里举例是整数时输入到A1单元格,你根据你自己的需求写范围你总不会要在整都这样吧?
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Text <> Int(Val(Target.Text)) Then
Target.Value = ""
Target.Select
MsgBox "请输入整数!"
End If
Application.EnableEvents = True
End SubPrivate Sub Worksheet_Change(ByVal Target As Range)
If IsNumeric(Target) Then
If Int(Target) <> Target Then
MsgBox "的整,请重新输入"
Target.Select
End If
End If
End Sub在需要的地方设置数据有效性就可以了无需vba
用EXCEL VBA编程实现,一个四位数,即0000到9999中的一位,输出前三位相加等于后三位相加的数。求程序


方法1
Sub ouyangff()
For i = 0 To 9
For j = 0 To 9
For k = 0 To 9
For l = 0 To 9
If i + j + k = j + k + l Then t = t + 1: Cells(t, 1).NumberFormat = "@": Cells(t, 1) = i & j & k & l
Next l, k, j, i
End Sub

方法2:
先选中A列,Ctrl+1,设置格式定义】:0000
你的是i+j+k = j+k+l,实际上就是千位和个等的4位数,就是 i=l:
Sub ouyangff()
For i = 0 To 9
For j = 0 To 9
For k = 0 To 9
For l = 0 To 9
If i = l Then t = t + 1: Cells(t, 1) = i & j & k & l
Next l, k, j, i
End Sub

方法3
根据上面的分析,IF也可省掉,所以化简为:
Sub ouyangff()
For i = 0 To 9
For j = 0 To 9
For k = 0 To 9
t = t + 1
Cells(t, 1).NumberFormat = "@"
Cells(t, 1) = i & j & k & i
Next k, j, i
End Sub不知道理解的对,
Sub aa()
Dim arr() As String
For i = 0 To 9999
istr = Format(i, "0000")
qian = Left(istr, 3)
hou = Right(istr, 3)
If isum(qian) = isum(hou) Then
n = n + 1
ReDim Preserve arr(1 To n)
arr(n) = istr
End If
Next
With Sheet1.Range("A1").Resize(n, 1)
.NumberFormat = ""
.Value = WorksheetFunction.Transpose(arr)
End With
MsgBox "共获得符合要求的" & n & "个,存工作表sheet1的A列."
End Sub
Function isum(num)
For i = 1 To 3
isum = isum + Mid(num, i, 1) * 1
Next
End Function本回答被网友采纳貌似挺简单的 。做一个除法运算,求莫,求余数,就可以了。
excel里vba怎么取出当前日期对应的数字给变量?

实际Date本身就是数值,直接赋值即可。x = date

本回答被提问者采纳


上一篇: 下一篇: