Что нового

[Данные, строки] замена строк в excel

issue

Новичок
Сообщения
3
Репутация
0
суть в том что мне надо в xls(mso2003) заменить всё : на . но я не представляю как это сделать. ps.пробывал макрос запускать помогает но мне надо в разных файлах а для каждова макрос делать это глупость.
p.s. если офис открывать руками то макросы из других документов винда а если через autoit то нет
Код:
Dim $objXL
$objXL = ObjCreate("Excel.Application")
    With $objXL.Application
        .Visible = True
        ;Open the Workbook
        .Workbooks.Open ("c:\Test.xls")
        $x = .Run("Test2") ; MacroName, Parameters1, Parameter2, ...
    EndWith
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
issue
Попробуйте так:
Код:
#include <Excel.au3>

$sFilePath = @ScriptDir & '\test.xls'
;$oExcel = _ExcelBookOpen($sFilePath, 0);скрытно
$oExcel = _ExcelBookOpen($sFilePath);в открытую
$aArrayList = _ExcelSheetList($oExcel)
For $i = 1 To $aArrayList[0]
	_ExcelSheetActivate($oExcel, $aArrayList[$i])
	$aArraySheet = _ExcelReadSheetToArray($oExcel)
	For $j = 1 To $aArraySheet[0][0]
		For $x = 1 To $aArraySheet[0][1]
			$sString = StringReplace($aArraySheet[$j][$x], ':', '.')
			_ExcelWriteCell($oExcel, $sString, $j, $x)
		Next
	Next
Next
_ExcelBookClose($oExcel)
 
Автор
I

issue

Новичок
Сообщения
3
Репутация
0
madmasles
спасибо работает но както медлено и мне надо во времени менять : на . и в твоём варианте получяетца примерно такое 0.221527777777778
но я домучял макросы вот мой код
autoit
Код:
Dim $objXL
			$objXL = ObjCreate("Excel.Application")

    With $objXL.Application
        .Visible = False
        ;Open the Workbook
		.Workbooks.Open (@ScriptDir & "\macros.xls")
        .Workbooks.Open ($FilePath)
		sleep(2000)
        $x = .Run("macros.xls!test1") ; MacroName, Parameters1, Parameter2, ...
		sleep(1000)
		.Quit 		; Quit Excel
код макроса для excel
Код:
Sub test1()
    Cells.Replace What:=":", Replacement:=".", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    ActiveWorkbook.Save
End Sub
толька теперь появилась проблема он начял подписывать am pm
 
Автор
I

issue

Новичок
Сообщения
3
Репутация
0
madmasles
дак я даже не предпологал что это важно и то что excel както в своём форате это пишет :wacko:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
issue [?]
для каждова макрос делать это глупость.
можно сделать один глобальный макрос. тогда он будет доступен во всех открытых книгах
 
Верх