au3如何将excel绿三角的字符列转换为数值列?
au3如何将excel绿三角的字符列转换为数值列?在excel中可以选中这一列的单元个,然后点击小黄感叹号进行转换,但通过autoit的程序代码如何快速将一个列的数据全部转换为数字。
可以录制宏操作,然后用AU3循环实现。 早就测试了录制宏,但宏不记录那个黄感叹号下的转换操作呀 回复 3# sdwd_lhq
提供一下范文呢! Sub Macro1()
'
' Macro1 Macro
' 宏由 微软用户 录制,时间: 2016-8-27
'
'
Range("L2:L18").Select
-----这里是手工操作,手工转换成数值,但没有录制语句
Selection.NumberFormatLocal = "#,##0.00_ "
Range("L14").Select
End Sub
$oExcel = _ExcelBookOpen($filename, 1, False)
_ExcelSheetActivate($oExcel, 1) ;切换标签到8
$oExcel.Cells.Select();选择所有单元格
$oExcel.Cells.Font.Name = "宋体";
$oExcel.Cells.Font.Size = 9;设置字体大小为9
$oExcel.Columns.AutoFit ;自动调整列以获得更佳视图
$oExcel.Rows.AutoFit ;自动调整行以获得更佳视图
;;下面代码根据列的值判断是否为数值字符串,然后将相应的数值字符列转换为数值
For $i = 1 To $oExcel.ActiveSheet.UsedRange.Columns.count
$sCellValue = _ExcelReadCell($oExcel, 2, $i)
If StringIsFloat($sCellValue) Or (StringIsInt($sCellValue) And StringInStr($sCellValue, ".") > 0) Then
;;这里是转换语句,不知该怎么写?
$oExcel.Columns($i).HorizontalAlignment = -4152 ;设置水平对齐方式为居右
$oExcel.Columns($i).NumberFormatLocal = "#,##0.00"
EndIf
Next
回复 6# sdwd_lhq
确实不会记录宏,等99大神上来看看,他可是操作EXCEL老手了。 这个问题我也一直在寻求解决方法。目前我采用的变通方法,假设添加R列
$Oexcel.activesheet.range("R1:R10).value=$Oexcel.activesheet.range("L1:L10).value 回复 8# h20040606
感谢回复,期待传说中的99大神,看有无好的方法 回复 1# sdwd_lhq
人工作法
選取全部然後 貼到TXT 檔案 然後再複製一次
再貼回來就全部解決
所以 AU3 應該 可以仿一樣的邏輯 選取全部設到 另外的變數
然後清空 解貼簿 然後然貼回來看看 回复 10# kk_lee69
我试了一下,是把单元格设置成文本才有绿色,可以用au3设置回来不? 判断这个错误
$rng.errors(3).value=true
$rng是单元格对象 回复 12# kevinch
实验不成功。 回复 1# sdwd_lhq
解決方式我上面有說邏輯 實際驗證可行
建立一個A1檔案在 A1~A5 的 格˙子弄成有綠色的 再改一下我的程式跑一下就知道
#include <Excel.au3>
$sFilePath="D:\A1.xlsx"
$oExcel = _ExcelBookOpen($sFilePath,1) ;打開EXCEL表
$oExcel.Range("A1:A5").Copy
$A=ClipGet()
$oExcel.Range("A1:A5").ClearContents
$oExcel.Range("A1:A5").NumberFormatLocal = "#,##0.00_ "
ClipPut($A)
$oExcel.Range("A1").Select
$oExcel.activesheet.range("A1" ).PasteSpecial 回复 1# sdwd_lhq
解決方式我上面有說邏輯 實際驗證可行
建立一個A1檔案在 A1~A5 的 格˙子弄成有綠色的 再改一下我的程式跑一下就知道
#include <Excel.au3>
$sFilePath="D:\A1.xlsx"
$oExcel = _ExcelBookOpen($sFilePath,1) ;打開EXCEL表
$oExcel.Range("A1:A5").Copy
$A=ClipGet()
$oExcel.Range("A1:A5").ClearContents
$oExcel.Range("A1:A5").NumberFormatLocal = "#,##0.00_ "
ClipPut($A)
$oExcel.Range("A1").Select
$oExcel.activesheet.range("A1" ).PasteSpecial
页:
[1]
2