1

スクリプトは初めてで、既存のマクロを改善しようとしています。重複を削除するマクロを記録し、他の関数を呼び出す Main 関数に追加しましたが、記録したマクロを追加すると、次のエラーが発生します: 実行時エラー '1004': アプリケーション定義またはオブジェクト定義のエラー.

コードは次のようになります

Sub Main()
Call DuplicateRemove
Call DeleteBlankRows
Call TrimText
End 

Sub DeleteBlankRows()
.
.
End Sub

Sub TrimText()
.
.
End Sub

Sub DuplicateRemove()
Columns("A:A").Select
ActiveSheet.Range("$A$1:$A$95678").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

ありがとう、キラン

4

3 に答える 3

3

コードに問題はありません。Activeワークシートがパスワードで保護されている場合にのみ、このエラーが発生します。

.Selectまた、 と の使用を避ける方がはるかに優れたオプションActiveSheetです。あなたのコードは次のように書くことができます

Sub DuplicateRemove()
    Dim ws As Worksheet

    Set ws = Sheets("Sheet1")

    With ws
        If .ProtectContents = True Then
            MsgBox "Worksheet is protected"
            .Unprotect "MYPASSWORD"
            .Range("$A$1:$A$95678").RemoveDuplicates Columns:=1, Header:=xlNo
            .Protect "MYPASSWORD"
        Else
            .Range("$A$1:$A$95678").RemoveDuplicates Columns:=1, Header:=xlNo
        End If
    End With
End Sub

ファローアップ

Sub DuplicateTest()
    ActiveSheet.Columns(1).RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
于 2012-07-31T21:41:12.040 に答える
1

このエラーは、Microsoft Visual Basic アプリケーションが Excel 2003 ワークブックの行全体をコピーして貼り付ける場合に発生します。または、Microsoft が Excel 2003 ワークブックの 2,516 行以上の範囲をコピーして貼り付けると、このエラーが発生する可能性があります。 ランタイム エラー1004発生します。このエラーの解決策を得るには、ブックを保存し、ブックを保存できるマクロのコードを操作します。

于 2014-02-27T12:33:39.257 に答える
-1

ActiveSheet.Range("A1:C100").RemoveDuplicates 列:=配列(1,2)、ヘッダー:=xlYes

あなたの状況について見つけた情報は次のとおりです。参考になれば幸いです。

于 2012-07-31T18:30:08.007 に答える