小编Iak*_*ian的帖子

如何在Excel中实现可重置,可过度删除的默认单元格值?

>>问题摘要

我想在Excel中实现一个可重置的,可过度删除的默认单元格值.通过这个,我的意思是当第二个单元格更新时,有一个单元格恢复为"默认"值,该值由依赖于第二个单元格的查找公式获得.用户还可以选择将不同的值写入原始单元格,这将保留到下一次更新第二个单元格为止.


>>主体和细节

好的,所以情况就是这样; 此快照属于多个工作表数据存储库的相关区域.为清楚起见,两个感兴趣的细胞以绿色突出显示,最高可见行为第1行.

现在,这就是我想在Stack单元格中发生的事情......

  • 目前的功能:
    • 当在项目搜索单元格中输入无效输入时,将显示波形符号而不是数字.
    • 输入有效输入后,查找表中的相关数字将显示在单元格中.在购买销售的细胞也被更新以同样的方式.
  • 所需的附加功能:
    • 在第一种情况下,波形符号不能被覆盖.
    • 在第二个实例中,可以通过在Stack单元格中输入另一个数字来覆盖"默认"数字.
    • 当在项目搜索单元格中输入新输入(或仅重新输入相同的输入)时,将再次显示默认编号(或波形符号).
  • 愿望清单(非必要):
    • 要有一个复选框(或类似的;例如相邻单元格中的是/否输入),如果勾选,则意味着堆栈单元格中显示的数字不会被任何新的"默认值"更改/影响从查找表中读入.仍然可以通过手动输入新号码来修改该号码.
    • 项搜索电池目前拥有其所有可能的有效数据输入的下拉列表alphabetised.有没有办法使用同一个列表为单元格添加自动完成功能?也许有点像谷歌搜索引擎,下拉列表会在您键入时出现,填充该列表的项目将持续限制为包含您目前键入的(子)字符串的项目.

注意:Stack单元格中显示的值必须可由其他单元格中的公式读取; 即买入卖出单元格,其值将成为Stack单元格的查找值与当时在单元格中显示的值的比率.

这有可能在任何程度上吗?优选地(但不排他地)不需要使用宏.此工作簿旨在分发给其他人,其中大部分都被锁定和保护,以避免对核心数据进行任何更改.

先感谢您.


迄今找到的信息:

......但还没有完全解决我的问题.

  1. 我可以使用多个单元格来实现相同(或类似)的有效功能(一个单元格保存默认值,另一个单元格保存可能的用户输入值,第三个单元格保存相关的输出值),但这看起来不像对最终用户来说既不好也不直观.此工作簿旨在分发给其他人,其中大部分都被锁定和保护.- 这个答案是不可取的.

  2. 在提出这个问题之前,在我的网上搜索中,我发现了这一点信息.它说如果我想恢复默认值是自动的,那么在工作表更改事件例程中使用以下代码:

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Target, Range("C2")) Is Nothing Then
            If Range("C2").Value = "" Then …
    Run Code Online (Sandbox Code Playgroud)

excel vba worksheet-function excel-vba excel-formula

12
推荐指数
1
解决办法
2万
查看次数

哪个是仅使用位移和加法将两个字节相乘的更好方法?

初步问题:

最近,我们一群(电子工程专业学生 - 英国)在PIC16F84A微控制器编程的基础上开始掌握这一点.需要将两个8位数相乘,每个都没有已知的最小值/最大值.一位同学提出了以下想法.

multiply_numbers:
; Takes numbers in Num1 and Num2, and returns product in OutH:OutL
    clrf    OutH            ; clear all non-input variables
    clrf    OutL
mult_loop
    bcf     STATUS,c        ; clear carry bit
    movfw   Num2
    addwf   OutL            ; add Num2 to OutL
    btfsc   STATUS,c        ; check carry bit
    incf    OutH            ; if set, increment OutH
    decfsz  Num1            ; decrement Num1
    goto    mult_loop       ; if Num1 is not zero, repeat loop
    return                  ; else return
Run Code Online (Sandbox Code Playgroud)

我觉得这虽然在代码行方面很短,但执行大数字可能需要相对较长的时间.我自己做了一些思考,开始沿着向右移动一个数字,向左移动另一个数字的路线,并沿着路径向输出添加左移数字一定次数到达输出最终答案.我做得不对,但后来偶然发现了这个问题,这让我想到了一个输入数字:

N = a_0 …

assembly bit-manipulation multiplication pic

6
推荐指数
1
解决办法
3521
查看次数