我有一張表格,用戶在其中選擇了一個非連續的單元格范圍(即 E4、F6、G7),我希望能夠將其轉換為(A4、A6、A7),保持行號但更改列。我只想回傳一個值,但是如果他們在同一行中選擇多個單元格或更糟的是仍然選擇整行。我的 VBA 有點不習慣,無法弄清楚這個
uj5u.com熱心網友回復:
.Offset并且.Resize不適用于非連續范圍。但是你可以使用一些技巧來完成它。
這個想法是將用戶的選擇轉換為整個行選擇,并將其與 A 列的范圍相交。結果是 A 列中的單元格與最初選擇的行相交。
Option Explicit
Public Sub SelectAInSelectedRows()
Dim UserSelection As Range
Set UserSelection = Selection.EntireRow ' make user's selection entire row
Dim SelectARange As Range
Set SelectARange = Intersect(UserSelection.Parent.Columns("A"), UserSelection) ' intersect the rows with column A
' select the resulting range in column A
SelectARange.Select
End Sub
uj5u.com熱心網友回復:
將其放入相關的作業表模塊中。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not (Intersect(ActiveSheet.Columns(1), Target) Is Nothing) Then Exit Sub
ActiveSheet.Cells(Target.Row, 1).Value2 = Target.Value2
End Sub
您也可以檢查輸出單元格是否不為空,然后更改
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/484143.html
上一篇:停止宏移動作業表
