主頁 > 區塊鏈 > 標記列中的單元格的選項,以便它可以用于復制某些行資料

標記列中的單元格的選項,以便它可以用于復制某些行資料

2022-09-15 17:47:30 區塊鏈

我一直在尋找將按鈕添加到列中,以便可以將特定的資料行添加到另一張表中。似乎您無法向單元格添加按鈕,因此我通過格式化使列單元格看起來像按鈕,然后添加了單擊功能來確定是否單擊了該行。這可行,但我開始認為如果用戶選擇他們想要的行首先單擊表格右側的單個按鈕以取出所有行并將它們添加到另一張表中會更好。

查看單選按鈕,似乎它們也不能嵌入到列中,而是鏈接到特定的單元格,這樣當它們被單擊時,它可以觸發資料到單元格。他們似乎也無法取消點擊。

有沒有什么東西可以放在一個單元格中,單擊時會將其設定為 1(“添加到作業表”)并再次單擊會將其設定為 0(“不添加”)?然后我可以將其讀入一個函式以確定哪些行應該添加到另一張表中。

uj5u.com熱心網友回復:

最簡單的方法是在用戶輸入 X(或空白)的位置添加一列。您可以為該列添加驗證規則,以便在需要時只允許 X。

不幸的是,單元格沒有 Click-Event,因此您可以對單擊做出反應以切換 X,最好的選擇是雙擊 ( Worksheet_BeforeDoubleClick),因此用戶也可以雙擊細胞:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Column = 1 Then   ' Assuming your selection column is [A]
        Target.Value = IIf(Target.Value = "", "X", "")
    End If
End Sub

如果您認為這對用戶來說太復雜了,您可以在每個單元格中放置一個控制元件(如復選框)。但是,您要么必須一個一個地手動創建這些控制元件,要么通過代碼創建這些控制元件。您需要了解所有物件,如控制元件、形狀、影像、圖表(等等)都是獨立的物件,它們不鏈接到單元格。您無法訪問具有 Range("A1").shape 等屬性的形狀,這些形狀僅鏈接到作業表。
要在調整單元格大小時強制 Excel 移動形狀,您需要設定屬性“隨單元格移動”,以便在調整行或列大小時,形狀保持在單元格內。但同樣,控制元件沒有鏈接到單元格,Excel 只是移動它的位置(left 和 top 屬性)。


我不是表單控制元件的忠實粉絲,也不會開始討論表單控制元件與 ActiveX 控制元件的優缺點。如果我需要一個按鈕之類的東西,我通常會“誤用”一個簡單的形狀——每個形狀都有一個 OnClick 方法,當單擊該形狀時會呼叫該方法。
下面的一段代碼將一個矩形放置在一個單元格內,該單元格基本上用于捕捉滑鼠點擊。我將這些形狀命名為“XShape”,因為它們用于將 X 設定為單元格。完整的形狀名稱還包含行和列。該例程首先檢查具有該名稱的形狀是否已經存在 - 如果是,則不創建新形狀。

Sub AddShape(c As Range)
    Const XShapeName_Prefix = "XShape_"
    Const DeltaX = 2
    Const DeltaY = 1
    
    Dim ws As Worksheet, sh As Shape
    Set ws = c.Worksheet
    Dim shapeName As String
    shapeName = XShapeName_Prefix & c.row & "_" & c.Column
    
    ' Check if shape is already there
    On Error Resume Next
    Set sh = ws.Shapes(shapeName)
    On Error GoTo 0
    If Not sh Is Nothing Then Exit Sub      ' Shape already there
    
    Set sh = ws.Shapes.AddShape(msoShapeRectangle, c.Left   DeltaX, c.Top   DeltaY, c.Width - 2 * DeltaX, c.Height - 2 * DeltaY)
   
    sh.Fill.Visible = msoFalse
    sh.Line.Visible = msoTrue
    sh.Line.Weight = 0.75
    sh.Line.ForeColor.RGB = vbBlack
    sh.Name = shapeName
    sh.OnAction = "XShape_Clicked"
    
End Sub

(提示:如果將 ForeColor 設定為vbWhite,則形狀不可見但仍能捕捉到滑鼠點擊)

如您所見,OnAction-method 設定為 subroutine XShape_Clicked您可以對任意數量的形狀使用相同的例程,該例程通過使用來確定單擊了哪個形狀Application.Caller它將“X”(或空白)寫入底層單元格。只需格式化單元格,使 X 顯示在形狀內。

Sub XShape_Clicked()
    
    Dim sh As Shape
    On Error Resume Next
    Set sh = ActiveSheet.Shapes(Application.Caller)
    On Error GoTo 0
    If sh Is Nothing Then Exit Sub

    Dim cell As Range
    Set cell = sh.TopLeftCell
    If cell Is Nothing Then Exit Sub
    
    cell.Value = IIf(UCase(cell.Value) = "X", "", "X")
End Sub

現在您只需要一個小例程,在資料的每一行中放置一個形狀:

Sub AddShapesToColumn()
    Dim row As Long, lastRow As Long
    With ActiveSheet  ' Replace this with the sheet you want to use
    
        lastRow = .Cells(.Rows.Count, "B").End(xlUp).row
        For row = 2 To lastRow
            AddShape .Cells(row, "A")
        Next row
    End With
End Sub

您可以在需要時呼叫此例程 - 例如,如果創建了新行,它將僅為新行創建新形狀。

標記列中的單元格的選項,以便它可以用于復制某些行資料

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/508286.html

標籤:擅长 vba excel公式

上一篇:串列框中的VBA不區分大小寫排序

下一篇:返回列表

標籤雲
其他(144758) Python(37226) JavaScript(24815) Java(16400) C(14940) 區塊鏈(8236) C#(7950) AI(7469) 爪哇(7385) html(6765) MySQL(6705) 基礎類(6313) sql(6080) 熊猫(6051) PHP(5775) 数组(5729) R(5304) Linux(5174) 反应(5159) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4408) 数据框(4307) css(4245) 节点.js(4010) C語言(3288) json(3233) C++語言(3117) 列表(3116) 扑(3071) 安卓(2989) 打字稿(2944) VBA(2775) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2378) ASP.NET(2364) MongoDB(2314) 麻木的(2284) 正则表达式(2218) 字典(2211) 循环(2196) 迅速(2157) 擅长(2152) 镖(2146) 功能(1965) Web開發(1951) python-3.x(1912) 弹簧靴(1901) xml(1865) for循环(1841) 谷歌表格(1836) Unity3D(1822) PostgreSQL(1803) 網絡通信(1793) .NETCore(1787) .NET技术(1786) 蟒蛇-3.x(1774)

熱門瀏覽
  • JAVA使用 web3j 進行token轉賬

    最近新學習了下區塊鏈這方面的知識,所學不多,給大家分享下。 # 1. 關于web3j web3j是一個高度模塊化,反應性,型別安全的Java和Android庫,用于與智能合約配合并與以太坊網路上的客戶端(節點)集成。 # 2. 準備作業 jdk版本1.8 引入maven <dependency> < ......

    uj5u.com 2020-09-10 03:03:06 more
  • 以太坊智能合約開發框架Truffle

    前言 部署智能合約有多種方式,命令列的瀏覽器的渠道都有,但往往跟我們程式員的風格不太相符,因為我們習慣了在IDE里寫了代碼然后打包運行看效果。 雖然現在IDE中已經存在了Solidity插件,可以撰寫智能合約,但是部署智能合約卻要另走他路,沒辦法進行一個快捷的部署與測驗。 如果團隊管理的區塊節點多、 ......

    uj5u.com 2020-09-10 03:03:12 more
  • 谷歌二次驗證碼成為區塊鏈專用安全碼,你怎么看?

    前言 谷歌身份驗證器,前些年大家都比較陌生,但隨著國內互聯網安全的加強,它越來越多地出現在大家的視野中。 比較廣泛接觸的人群是國際3A游戲愛好者,游戲盜號現象嚴重+國外賬號安全應用廣泛,這類游戲一般都會要求用戶系結名為“兩步驗證”、“雙重驗證”等,平臺一般都推薦用谷歌身份驗證器。 后來區塊鏈業務風靡 ......

    uj5u.com 2020-09-10 03:03:17 more
  • 密碼學DAY1

    目錄 ##1.1 密碼學基本概念 密碼在我們的生活中有著重要的作用,那么密碼究竟來自何方,為何會產生呢? 密碼學是網路安全、資訊安全、區塊鏈等產品的基礎,常見的非對稱加密、對稱加密、散列函式等,都屬于密碼學范疇。 密碼學有數千年的歷史,從最開始的替換法到如今的非對稱加密演算法,經歷了古典密碼學,近代密 ......

    uj5u.com 2020-09-10 03:03:50 more
  • 密碼學DAY1_02

    目錄 ##1.1 ASCII編碼 ASCII(American Standard Code for Information Interchange,美國資訊交換標準代碼)是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是現今最通用的單位元組編碼系統,并等同于國際標準ISO/IE ......

    uj5u.com 2020-09-10 03:04:50 more
  • 密碼學DAY2

    ##1.1 加密模式 加密模式:https://docs.oracle.com/javase/8/docs/api/javax/crypto/Cipher.html ECB ECB : Electronic codebook, 電子密碼本. 需要加密的訊息按照塊密碼的塊大小被分為數個塊,并對每個塊進 ......

    uj5u.com 2020-09-10 03:05:42 more
  • NTP時鐘服務器的特點(京準電子)

    NTP時鐘服務器的特點(京準電子) NTP時鐘服務器的特點(京準電子) 京準電子官V——ahjzsz 首先對時間同步進行了背景介紹,然后討論了不同的時間同步網路技術,最后指出了建立全球或區域時間同步網存在的問題。 一、概 述 在通信領域,“同步”概念是指頻率的同步,即網路各個節點的時鐘頻率和相位同步 ......

    uj5u.com 2020-09-10 03:05:47 more
  • 標準化考場時鐘同步系統推進智能化校園建設

    標準化考場時鐘同步系統推進智能化校園建設 標準化考場時鐘同步系統推進智能化校園建設 安徽京準電子科技官微——ahjzsz 一、背景概述隨著教育事業的快速發展,學校建設如雨后春筍,隨之而來的學校教育、管理、安全方面的問題成了學校管理人員面臨的最大的挑戰,這些問題同時也是學生家長所擔心的。為了讓學生有更 ......

    uj5u.com 2020-09-10 03:05:51 more
  • 位元幣入門

    引言 位元幣基本結構 位元幣基礎知識 1)哈希演算法 2)非對稱加密技術 3)數字簽名 4)MerkleTree 5)哪有位元幣,有的是UTXO 6)位元幣挖礦與共識 7)區塊驗證(共識) 總結 引言 上一篇我們已經知道了什么是區塊鏈,此篇說一下區塊鏈的第一個應用——位元幣。其實先有位元幣,后有的區塊 ......

    uj5u.com 2020-09-10 03:06:15 more
  • 北斗對時服務器(北斗對時設備)電力系統應用

    北斗對時服務器(北斗對時設備)電力系統應用 北斗對時服務器(北斗對時設備)電力系統應用 京準電子科技官微(ahjzsz) 中國北斗衛星導航系統(英文名稱:BeiDou Navigation Satellite System,簡稱BDS),因為是目前世界范圍內唯一可以大面積提供免費定位服務的系統,所以 ......

    uj5u.com 2020-09-10 03:06:20 more
最新发布