4

エクセルのマクロについてです。

キーの組み合わせが押されている間 (つまり、マクロがトリガーされている間)、ActiveCell を含む行の列 1 から 10 に対していくつかのフォーマット変更を行う必要があります。

現時点では、行全体を選択しています

ActiveCell.EntireRow.Select

ただし、行 1 から 10 のみを選択する必要があります。次のようにする必要があると思います

ActiveCell.Range(1, 10).Select

しかし、それはうまくいきません。

明確にするために、私は読んだことがあります

ActiveCell.Offset(5, -4).Select

しかし、それは私の場合はうまくいきません。ActiveCell は行の任意の列である可能性があるため、ハードコーディングされたオフセットは役に立ちません。

それで、そこにいるExcelの達人、これが簡単なものであることを願っていますが、どういうわけか答えが見つかりません。助けてください。

4

4 に答える 4

13

常に列 1 から 10 (つまり A から J) である場合、これは機能するはずです。

Range("A" & ActiveCell.Row & ":J" & ActiveCell.Row)

たとえば、activecell が の場合、M14これにより range が選択されますA14:J14。その後、これを好きなようにフォーマットできます。

お役に立てれば

于 2013-05-06T08:14:58.450 に答える
1

Ok。これは私がやったことであり、うまくいきます。

ActiveSheet.Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 10)).Select

私の考えでは、これは一種のハッキーな方法です。何か良いことがあれば、回答お願いします。より良いものを手に入れるまでは、私の後に答えを探しに来る人にとって、これが最良の答えだと思います.

于 2013-05-06T07:46:40.420 に答える
0

これはうまくいきます

Range("A" & ActiveCell.Row).Resize(1,10).select
于 2015-07-08T05:05:49.647 に答える
0

該当する場合..見つけるのに多くの時間を費やし、結果を得るために、よりプログラム可能な自動回答が必要でした-1行で作業します。

        Dim N7 As String: N7 = RANGE("N7")    'workcell N7 shows eg:  A:J    
        Intersect(Rows(ActiveCell.row), RANGE(N7).Columns).Select   'YES ANSWER

    'other:
        If application.Max(Intersect(Rows(ActiveCell.row), RANGE(N7).Columns)) > 0 Then

      MsgBox "YES" & Space(10), vbQuestion  ', "title": end if    & vbCr &
Else: MsgBox "NO" & Space(10), vbQuestion: End If ', "title": end if    & vbCr &

'Cells(ActiveCell.row, J6).OFFSET(, 1).RESIZE(, 6).Select    'YES: offset works on immediate cols for 1 row
'Cells(ActiveCell.row, J6).RESIZE(, 5).Select                'yes on 4 immediate cols for 1 row   (row, col)
'Cells(ActiveCell.row, B5).select

ワークセル N7 には: =SUBSTITUTE(SUBSTITUTE(CELL("address",$A7),"$",""),ROW(),"")&":"&SUBSTITUTE(SUBSTITUTE(CELL("address",$J7) ),"$",""),ROW(),"")

于 2017-01-16T01:45:52.927 に答える