heroxianf 发表于 2016-5-20 10:03:54

如何在EXCEL中插入行[已解决]

本帖最后由 heroxianf 于 2016-5-25 09:09 编辑

KK,   如果你上线了帮我看看,我练习的时候像遇到这类有参数的,始终不会转换成AU3



录制的Sub 1()

    Rows("3:3").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "end"
    Rows("6:6").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A6").Select
    ActiveCell.FormulaR1C1 = "end"
    Range("A7").Select
End Sub

heroxianf 发表于 2016-5-20 10:07:29

本帖最后由 heroxianf 于 2016-5-20 10:09 编辑

$oWorkbook.ActiveSheet.Insert($oWorkbook.ActiveSheet.Rows("3:3").Select, '', '')

$oWorkbook.ActiveSheet.Rows("3:3").Select($oWorkbook.ActiveSheet.Insert, '', '')

这是我尝试的~

kk_lee69 发表于 2016-5-20 10:28:49

回复 2# heroxianf

Range("A3").Select

這樣的東西不用理因為你錄製的時候是一個動作錄製一個   這個指示表示 你選中了

通常是 表示的就是 Range("A3")

帶有參數的 請看 msdn 的 資料 然後 vba 通常是 參數a:xxx   參數b:xxx

autoit 就是 ( xxx,xxx)

kk_lee69 发表于 2016-5-20 10:29:21

你發在解決區 是 解決了嗎

heroxianf 发表于 2016-5-20 10:35:53

本帖最后由 heroxianf 于 2016-5-20 10:50 编辑

回复 4# kk_lee69


    不好意思,我上一个列子的时候就点击解决区了~没有解决啊~ 请帮我移到提问交流区一下哈

heroxianf 发表于 2016-5-20 10:37:29

回复 3# kk_lee69


    Rows("3:3").Select

这个应该要理一下吧?

kk_lee69 发表于 2016-5-20 10:59:07

回复 6# heroxianf


      Rows("3:3").Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove



試試看 這樣
$oWorkbook.ActiveSheet.Rows("3:3").Insert(xlDown,xlFormatFromLeftOrAbove)

xlDown,xlFormatFromLeftOrAbove 這兩個 AU3 一定看不懂 去找出 其值直接填入值

heroxianf 发表于 2016-5-20 11:10:28

回复 7# kk_lee69

没有反应,基值从什么地方看的?另外我按照你上次给我的例子写貌似可以选中整个3行 其他操作无效


        With $oWorkbook.ActiveSheet
        .Rows("3").Select
    .Selection.Insert('','')
    .Range("A3").Select
    .ActiveCell.FormulaR1C1 = "end"
        EndWith

heroxianf 发表于 2016-5-20 11:16:17

回复 7# kk_lee69
KK 我把EXCEL.AU3 UDF里找到这个了。Func _Excel_RangeInsert($oWorksheet, $vRange, $iShift = Default, $iCopyOrigin = Default)
        ; Error handler, automatic cleanup at end of function
        Local $oError = ObjEvent("AutoIt.Error", "__Excel_COMErrFunc")
        #forceref $oError
        If Not IsObj($oWorksheet) Or ObjName($oWorksheet, 1) <> "_Worksheet" Then Return SetError(1, 0, 0)
        If Not IsObj($vRange) Then
                $vRange = $oWorksheet.Range($vRange)
                If @error Then Return SetError(2, @error, 0)
        EndIf
        $vRange.Insert($iShift, $iCopyOrigin)
        If @error Then Return SetError(3, @error, 0)
        Return $vRange
EndFunc   ;==>_Excel_RangeInsert

kk_lee69 发表于 2016-5-20 16:24:34

回复 9# heroxianf

所以 問題解決了嗎??

heroxianf 发表于 2016-5-20 16:26:57

回复 10# kk_lee69

还在折腾{:face (456):}

kk_lee69 发表于 2016-5-20 16:33:12

回复 11# heroxianf

明明這樣就可以插入
$oWorkbook.ActiveSheet.Rows("3:3").Insert(-4121 ,0)

我說得很清楚啦   自己要去找值

heroxianf 发表于 2016-5-21 01:01:50

回复 12# kk_lee69


    这个 -4121, 0   这个值哪里看到的?

h20040606 发表于 2016-5-21 12:18:01

本帖最后由 h20040606 于 2016-5-21 12:20 编辑

回复 13# heroxianf


   在excel的vba中,移动光标到要查看的常量上,按Ctrl+I

heroxianf 发表于 2016-5-23 10:32:05

回复 14# h20040606

能提供一下截图吗?
页: [1] 2
查看完整版本: 如何在EXCEL中插入行[已解决]