VBA中整数到字符串的转换
下面是整个代码的一些部分,我试图通过VBA中整数到字符串的转换,vba,typeconverter,Vba,Typeconverter,下面是整个代码的一些部分,我试图通过If语句运行变量P1。在If语句的末尾如果值P1不符合前面的条件,我想将P1转换为空字符串 我已经删除了下面代码中大部分不相关的部分,只是为了抓住要点 Sub SLNR '<Macro = SLNR> '<Shortcut = Shift+Ctrl+S> '<Desc = recorded 7/26/2016 12:33:03 PM> On Error Resume Next ' I
If语句运行变量P1
。在If语句的末尾
如果值P1
不符合前面的条件,我想将P1
转换为空字符串
我已经删除了下面代码中大部分不相关的部分,只是为了抓住要点
Sub SLNR
'<Macro = SLNR>
'<Shortcut = Shift+Ctrl+S>
'<Desc = recorded 7/26/2016 12:33:03 PM>
On Error Resume Next
' Individual lines for the data
Dim L1 As String, L2 As String, L3 As String, L4 As String, L5 As String, L6 As String, L7 As String, _
L8 As String, L9 As String, L10 As String, L11 As String, L12 As String, L13 As String, _
L14 As String, L15 As String, L16 As String, L17 As String, L18 As String, L19 As String, _
L20 As String
Dim L As Integer 'Left column of data
Dim R As Integer 'Right column of data
Dim R2 As Integer 'The data row to be checked
Dim pL As Integer
Dim pR As Integer
Dim SP1 As String
SP1 = "subj_data_field1"
Dim SP2 As String
SP2 = "subj_data_field2"
Dim SP3 As String
SP3 = "subj_data_field3"
Dim P1 As Integer
Dim P2 As Integer
Dim P3 As Integer
Dim E As String 'Carriage Return Key shortcut
E = Chr$(13)
L = 0
R = 10
R2 = 2
pL = L + 14
pR = R + 13
With ActiveSession
.InputMode = 1
.Output "MS1" & E
.WaitFor 0, 1, "W,/) "
' Copying the first few characters of each line in LN report, to compare with the phone fields...
.Copy L, R2 + 0 , R, R2 + 0
L1 = Clipboard
.Copy L, R2 + 1 , R, R2 + 1
L2 = Clipboard
.Copy L, R2 + 2 , R, R2 + 2
L3 = Clipboard
.Copy L, R2 + 3 , R, R2 + 3
L4 = Clipboard
.Copy L, R2 + 4 , R, R2 + 4
L5 = Clipboard
.Copy L, R2 + 5 , R, R2 + 5
L6 = Clipboard
.Copy L, R2 + 6 , R, R2 + 6
L7 = Clipboard
.Copy L, R2 + 7 , R, R2 + 7
L8 = Clipboard
.Copy L, R2 + 8 , R, R2 + 8
L9 = Clipboard
.Copy L, R2 + 9 , R, R2 + 9
L10 = Clipboard
.Copy L, R2 + 10 , R, R2 + 10
L11 = Clipboard
.Copy L, R2 + 11 , R, R2 + 11
L12 = Clipboard
.Copy L, R2 + 12 , R, R2 + 12
L13 = Clipboard
.Copy L, R2 + 13 , R, R2 + 13
L14 = Clipboard
.Copy L, R2 + 14 , R, R2 + 14
L15 = Clipboard
.Copy L, R2 + 15 , R, R2 + 15
L16 = Clipboard
.Copy L, R2 + 16 , R, R2 + 16
L17 = Clipboard
.Copy L, R2 + 17 , R, R2 + 17
L18 = Clipboard
.Copy L, R2 + 18 , R, R2 + 18
L19 = Clipboard
.Copy L, R2 + 19 , R, R2 + 19
L20 = Clipboard
' Finding field for P1
If L1 = SP1 Then
.Copy pL, R2 + 0 , pR, R2 + 0
P1 = Clipboard
ElseIf L2 = SP1 Then
.Copy pL, R2 + 1 , pR, R2 + 1
P1 = Clipboard
ElseIf L3 = SP1 Then
.Copy pL, R2 + 2 , pR, R2 + 2
P1 = Clipboard
ElseIf L4 = SP1 Then
.Copy pL, R2 + 3 , pR, R2 + 3
P1 = Clipboard
ElseIf L5 = SP1 Then
.Copy pL, R2 + 4 , pR, R2 + 4
P1 = Clipboard
ElseIf L6 = SP1 Then
.Copy pL, R2 + 5 , pR, R2 + 5
P1 = Clipboard
ElseIf L7 = SP1 Then
.Copy pL, R2 + 6 , pR, R2 + 6
P1 = Clipboard
ElseIf L8 = SP1 Then
.Copy pL, R2 + 7 , pR, R2 + 7
P1 = Clipboard
ElseIf L9 = SP1 Then
.Copy pL, R2 + 8 , pR, R2 + 8
P1 = Clipboard
ElseIf L10 = SP1 Then
.Copy pL, R2 + 9 , pR, R2 + 9
P1 = Clipboard
ElseIf L11 = SP1 Then
.Copy pL, R2 + 10 , pR, R2 + 10
P1 = Clipboard
ElseIf L12 = SP1 Then
.Copy pL, R2 + 11 , pR, R2 + 11
P1 = Clipboard
ElseIf L13 = SP1 Then
.Copy pL, R2 + 12 , pR, R2 + 12
P1 = Clipboard
ElseIf L14 = SP1 Then
.Copy pL, R2 + 13 , pR, R2 + 13
P1 = Clipboard
ElseIf L15 = SP1 Then
.Copy pL, R2 + 14 , pR, R2 + 14
P1 = Clipboard
ElseIf L16 = SP1 Then
.Copy pL, R2 + 15 , pR, R2 + 15
P1 = Clipboard
ElseIf L17 = SP1 Then
.Copy pL, R2 + 16 , pR, R2 + 16
P1 = Clipboard
ElseIf L18 = SP1 Then
.Copy pL, R2 + 17 , pR, R2 + 17
P1 = Clipboard
ElseIf L19 = SP1 Then
.Copy pL, R2 + 18 , pR, R2 + 18
P1 = Clipboard
ElseIf L20 = SP1 Then
.Copy pL, R2 + 19 , pR, R2 + 19
P1 = Clipboard
Else
CStr(P1)
P1 = "" ' <<<<<<<<********** ISSUE IS HERE
End If
' ......... Code has been trimmed... Showing below the reason I need P1 as an Integer
If P1 <> "" Then
Format(P1,000-000-0000)
End If
If P2 <> "" Then
Format(P2,000-000-0000)
End If
If P3 <> "" Then
Format(P3,000-000-0000)
End If
' CONTINUES ON.....
子SLNR
'
'
'
出错时继续下一步
'数据的单个行
尺寸L1为字符串,L2为字符串,L3为字符串,L4为字符串,L5为字符串,L6为字符串,L7为字符串_
L8作为字符串,L9作为字符串,L10作为字符串,L11作为字符串,L12作为字符串,L13作为字符串_
L14作为字符串,L15作为字符串,L16作为字符串,L17作为字符串,L18作为字符串,L19作为字符串_
L20作为字符串
Dim L作为整型数据的左列
Dim R作为整数的右数据列
Dim R2作为要检查的数据行的整数
作为整数的Dim pL
作为整数的Dim pR
将SP1设置为字符串
SP1=“主题数据字段1”
尺寸SP2为字符串
SP2=“主题数据字段2”
尺寸SP3为字符串
SP3=“主题数据字段3”
将P1设置为整数
将P2设置为整数
将P3设置为整数
Dim E作为字符串的“回车键快捷键”
E=Chr$(13)
L=0
R=10
R2=2
pL=L+14
pR=R+13
使用ActiveSession
.InputMode=1
.输出“MS1”和E
.等待0,1,“W,/)”
'复制LN报告中每行的前几个字符,以与电话字段进行比较。。。
.复制L,R2+0,R,R2+0
L1=剪贴板
.复制L,R2+1,R,R2+1
L2=剪贴板
.复制L,R2+2,R,R2+2
L3=剪贴板
.复制L,R2+3,R,R2+3
L4=剪贴板
.复制L,R2+4,R,R2+4
L5=剪贴板
.复制L,R2+5,R,R2+5
L6=剪贴板
.复制L,R2+6,R,R2+6
L7=剪贴板
.复制L,R2+7,R,R2+7
L8=剪贴板
.复制L,R2+8,R,R2+8
L9=剪贴板
.复制L,R2+9,R,R2+9
L10=剪贴板
.复制L,R2+10,R,R2+10
L11=剪贴板
.复制L,R2+11,R,R2+11
L12=剪贴板
.复制L,R2+12,R,R2+12
L13=剪贴板
.复制L,R2+13,R,R2+13
L14=剪贴板
.复制L,R2+14,R,R2+14
L15=剪贴板
.复制L,R2+15,R,R2+15
L16=剪贴板
.复制L,R2+16,R,R2+16
L17=剪贴板
.复制L,R2+17,R,R2+17
L18=剪贴板
.复制L,R2+18,R,R2+18
L19=剪贴板
.复制L,R2+19,R,R2+19
L20=剪贴板
'查找P1的字段
如果L1=SP1,则
.复制pL、R2+0、pR、R2+0
P1=剪贴板
ElseIf L2=SP1然后
.复制pL、R2+1、pR、R2+1
P1=剪贴板
ElseIf L3=SP1然后
.复制pL、R2+2、pR、R2+2
P1=剪贴板
ElseIf L4=SP1然后
.复制pL、R2+3、pR、R2+3
P1=剪贴板
ElseIf L5=SP1然后
.复制pL,R2+4,pR,R2+4
P1=剪贴板
ElseIf L6=SP1然后
.复制pL,R2+5,pR,R2+5
P1=剪贴板
ElseIf L7=SP1然后
.复制pL,R2+6,pR,R2+6
P1=剪贴板
ElseIf L8=SP1然后
.复制pL,R2+7,pR,R2+7
P1=剪贴板
ElseIf L9=SP1那么
.复制pL,R2+8,pR,R2+8
P1=剪贴板
ElseIf L10=SP1然后
.复制pL,R2+9,pR,R2+9
P1=剪贴板
ElseIf L11=SP1然后
.复制pL,R2+10,pR,R2+10
P1=剪贴板
ElseIf L12=SP1然后
.复制pL,R2+11,pR,R2+11
P1=剪贴板
ElseIf L13=SP1然后
.复制pL,R2+12,pR,R2+12
P1=剪贴板
ElseIf L14=SP1然后
.复制pL,R2+13,pR,R2+13
P1=剪贴板
ElseIf L15=SP1然后
.复制pL,R2+14,pR,R2+14
P1=剪贴板
ElseIf L16=SP1然后
.复制pL,R2+15,pR,R2+15
P1=剪贴板
ElseIf L17=SP1然后
.复制pL,R2+16,pR,R2+16
P1=剪贴板
ElseIf L18=SP1然后
.复制pL,R2+17,pR,R2+17
P1=剪贴板
ElseIf L19=SP1然后
.复制pL,R2+18,pR,R2+18
P1=剪贴板
ElseIf L20=SP1然后
.复制pL,R2+19,pR,R2+19
P1=剪贴板
其他的
CStr(P1)
P1=“”“您已将P1
声明为整数-如果您想在操作中途更改其数据类型,则应将其声明为变量
,并在执行过程中使用隐式转换来控制数据类型,尽管简单地将另一个变量声明为字符串更有意义用它来代替
另外,CStr(P1)
本身没有任何作用-您需要将返回值赋回变量:
P1 = CStr(P1)
更有意义的是:
Dim P1为整数
将p1tString设置为字符串
“//此处有更多代码
P1toString=CStr(P1)
“//此处有更多代码
如果P1
Dim P1 As Integer
Dim P1toString As String
'// More code here
P1toString = CStr(P1)
'// More code here
If P1toString <> "" Then
'// etc etc...