Bgr*_*DSI 14 excel vba excel-vba
我无法在此处获取此代码以获取单元格内容并将其存储为字符串.我得到一个双倍:
54.6666666667而不是N03:DM:(示例单元格内容).
如果我使用Cstr(Sheet1.Cells(i, 5).Value)我仍然得到相同的结果.
任何帮助,将不胜感激.
Option Explicit
Private Sub GetAddress()
Dim varAdd As String
Dim i As Integer
For i = 2 To 327
If varTag = Sheet1.Cells(i, 2).Value Then
varAdd = Sheet1.Cells(i, 5).Value
varAdd = Left(varAdd, 7)
Sheet3.Cells(incR, 2).Value = varAdd
Exit For
End If
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
工作表截图 
小智 34
用Range("A1").Text而不是.Value
发表评论编辑:
为什么?
因为.TextRange对象的属性返回电子表格中几乎可见的内容,所以如果您显示单元格,i100l:25he*_92那么< - Text将完全返回单元格中的内容,包括任何格式.
在.Value和.Value2属性返回什么是储存在电池盖下排除格式.特别是.Value2对于日期类型,它将返回十进制表示.
如果你想深入挖掘意义和表现,我发现this article这似乎是一个很好的指南
另一个编辑
在这里你去@Santosh
输入(手动)从DEFAULT(col A)到其他列的值
不要将所有
格式列B中的列A 格式化为文本
格式列C作为日期[dd/mm/yyyy]
格式列D为百分比

现在,
将此代码粘贴到模块中
Sub main()
Dim ws As Worksheet, i&, j&
Set ws = Sheets(1)
For i = 3 To 7
For j = 1 To 4
Debug.Print _
"row " & i & vbTab & vbTab & _
Cells(i, j).Text & vbTab & _
Cells(i, j).Value & vbTab & _
Cells(i, j).Value2
Next j
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
和Analyse输出!它真的很容易,没有更多我可以帮助:)
.TEXT .VALUE .VALUE2
row 3 hello hello hello
row 3 hello hello hello
row 3 hello hello hello
row 3 hello hello hello
row 4 1 1 1
row 4 1 1 1
row 4 01/01/1900 31/12/1899 1
row 4 1.00% 0.01 0.01
row 5 helo1$$ helo1$$ helo1$$
row 5 helo1$$ helo1$$ helo1$$
row 5 helo1$$ helo1$$ helo1$$
row 5 helo1$$ helo1$$ helo1$$
row 6 63 63 63
row 6 =7*9 =7*9 =7*9
row 6 03/03/1900 03/03/1900 63
row 6 6300.00% 63 63
row 7 29/05/2013 29/05/2013 41423
row 7 29/05/2013 29/05/2013 29/05/2013
row 7 29/05/2013 29/05/2013 41423
row 7 29/05/2013% 29/05/2013% 29/05/2013%
Run Code Online (Sandbox Code Playgroud)