Tag:

VBAmacrosExcel:如何从Excel单元格中读取Unicode字符

我正努力从VBA Excel中的单元格读取Unicode字符。 Sub mySub() Cells(1, "A").Value = ChrW(10003) ' Writes checkbox symbol to A1 MsgBox Asc(Cells(1, "A").Value) ' Output: 63 (questionmark symbol) ' Expected Output: 10003 End Sub 如果checkbox符号被用户修改,我需要阅读Unicode字符才能看到。 我不知道如何比较Unicode字符与单元格值..

EXCEL女士:将点击/活动单元格的内容复制到另一个单元格

这似乎是一个容易的任务,但从某种程度上来说,没有任何工作,因为我已经尝试了几个解决scheme, 我想要的东西,假设我们有这张表: 当单元格被随机点击时,该文本的值/内容应显示在橙色框中。 这是第一个也是最重要的部分。 第二件事是:如果可能的话,包含相同值的所有其他单元格应该用绿色背景突出显示/着色(见图) 我试过了: https : //www.ablebits.com/office-addins-blog/2015/02/10/excel-indirect-function/ http://www.contextures.com/xlFunctions05.html https://support.office.com/en-us/article/Hide-or-display-cell-values-c94b3493-7762-4a53-8461-fb5cd9f05c33 https://support.office.com/en-us/article/CELL-function-51bd39a5-f338-4dbe-a33f-955d67c2b2cf 先谢谢你。 编辑1: PS:最好是非VB解决scheme。 但是,如果一个VB解决scheme将是所有的,那么你的VB的build议将不胜感激

select列并从其他单元格中查找值

我需要select“D:D”列,所以我做了。 那么我需要find其他单元格的列值。 所以我需要做的是: 我在“J5”细胞中获得了价值。 我需要在D:D中find这个价值 我需要将一个单元向右移动 我需要从单元格复制一切(例如 – E2) 粘贴在“J6” 一切都在一张纸上,但结果将用于其他纸张。 这是明天的学校项目。 我整个周末都在努力抢答案,但是我不能自己做,而且我的脑子被洗了。 码: Columns("B:B").Select Selection.Find(What:="VA22GU1", After:=ActiveCell, LookIn:=xlFormulas, _ LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False).Activate

Excel中的唯一值

Excel中有一组数字,范围从B1到F49。 在所有这些数字中,我想找出独特的价值,换句话说,没有重复。 我尝试使用删除重复,但它看起来在行而不是单个单元格。 什么是我做这个最好的select? 任何帮助将不胜感激。

根据相邻单元格值返回响应

我对原来的问题做了一些调整。 首先,我不是想象中的任何一个VBA精英,所以这正是我试图一起parsing,以便于工作stream程。 考虑到给出的意见,我决定在隐藏的单元格中包含公式,这将有助于简化这个过程,但是我仍然得到错误,我不确定究竟是什么导致了它们。 我有一个列(行3-1500,col.U),返回星期几的名称(它正在读取input到列C(行3-1500)date值的“dddd”)和那么我试图让列M根据存储在列U中的值返回“是”,“否”或“星期天”…我不断收到“应用程序定义或用户定义的错误”消息,我真的不知道错误来自哪里。 注:这个子是在我的工作表模块的特定的工作表,我试图把它作为一个公共模块外移动,但它仍然抛出错误。 Sub IsWeekend() For i = 3 To 1500 If Cells(i, 3) <> 0 And Cells(i, 20) <> "" Then If Range("U3:1500") = "Sunday" Then Range("M3:1500") = "Sunday" ElseIf Range("U3:1500").Text = "Saturday" Then Range("M3:1500") = "Yes" Else Range("M3:1500") = "No" End If End If Next i End Sub 谢谢!

值更改警报VBA

所以我试图做一个警报,如果列更改为“496”,它给一个MsgBox一个警报,并且该警报需要说的是发生变化的行,并且值被更改为“496”,我也瞄准把细胞红(填充)。 我还没有插入MsgBox,这个代码是由一个朋友给我帮我在Excel中的数据库中。 而且我在excel vba方面的技能还很差,所以很抱歉。 但我在学习。 Option Explicit Private prevValue As Variant Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range If Not Intersect(Target, Range("G3:G500")) Is Nothing Then For Each cell In Target Me.Cells(cell.Row, "496").Interior.ColorIndex = xlColorIndexNone If cell.Value <> "" And cell.Value <> prevValue Then Me.Cells(cell.Row, "496").Interior.ColorIndex = 3 End If Next cell End […]

Excel VBA – 值&MsgBox

我发布了一个关于这段已经被“Alex Bell”更改的代码的问题,他帮助我编写了一个MsgBox,每次在该特定范围内出现值“496”时出现。 但是由于我对这门语言的了解不多,所以有很多我不能做的事情。 我试图实现的下一步是做同样的事情已经完成,MsgBox警报,如果值是“496”,但现在也是“800”。 那么问题是什么? 问题是,我不能想出一种方法来把这两个条件一起工作,例如它告诉我“496”和“800”在哪里,并填充这两个包含特定值的单元格。 这可能是一个很容易解决的问题,但我又是vba的新手,当我在学校学习vb时,我们并没有那么多的学习。 所以期待更多的关于vba的话题,我正在试着学习。 Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range If Not Intersect(Target, Range("G3:G500")) Is Nothing Then For Each cell In Target 'need clarification 'Me.Cells(cell.Row, "496").Interior.ColorIndex = xlColorIndexNone 'If cell.Value <> "" And cell.Value <> prevValue Then 'Me.Cells(cell.Row, "496").Interior.ColorIndex = 3 'End If If cell.Value = "496" […]

复制工作表时出现#VALUE错误

我使用的UDF基本上是一个简化的查找。 这里是代码: Function SUELDOBASICO(Columna As Integer) As Double SUELDOBASICO = Application.WorksheetFunction.VLookup(Application.Caller.Parent.Cells(Application.Caller.Row, 3), Application.Caller.Parent.Parent.Sheets("Escalas Salariales").Range("A3:DJ23"), Columna, False) End Function 我注意到,有时当复制工作表(在同一个工作簿)时,我得到一个#VALUE错误。 如果我在Excel中“编辑”单元格,只要使用F2和Enter就不会改变,错误消失。 它曾经发生,当简单地改变窗口(例如对Firefox,并且回到Excel)。 这就是为什么我在代码中使用Caller和Parent原因。 它几乎是完全固定的,除非有时复印纸张。 我似乎无法find错误的来源。 请帮助。

Excel VBA – 数组公式返回#VALUE! (错误2015)以防单元包含超过255个字符的情况

亲爱的,我使用一个数组公式的结果传递给VBAmacros,这意味着公式的结果作为数组传递给我的macros。 在某些情况下,我在数组中获得#VALUE(错误2015),我不知道为什么。 当我和受影响的细胞一起玩的时候,当细胞有相当数量的字符(~3000个字符)时,就会发生这种情况。 有没有人有线索我可以尝试解决isuse? 式: {=arrayToCSV(removeElementsFrom2DimArray(IF('sheet'!$G$1:$G$2000=A1;'sheet'!$F$1:$F$2000)))} IF('sheet'!$G$1:$G$2000=A1;'sheet'!$F$1:$F$2000)部分返回一个数组,如{FALSE, FALSE, FALSE… Value, Value, FALSE , …} 。 这一个我传递给我的mVBA函数removeElementsFrom2DimArray去除FALSE元素 现在看来IF('sheet'!$G$1:$G$2000=A1;'sheet'!$F$1:$F$2000)在某些情况下会返回#VALUE(Error 2015) {FALSE, FALSE, FALSE… #VALUE!, Value, FALSE , …} Function removeElementsFrom2DimArray(ByRef arr() As Variant, Optional value As Variant = False) As String() On Error GoTo ErrorHandler Dim coll As New Collection Dim i As Integer If (IsArray(arr)) Then […]

将NOW()作为Excel自定义函数中的parameter passing给了#VALUE! 错误?

我在Excel中有一个自定义函数,它处理作为参数传入的date。 它正常工作正常,但如果我直接通过NOW()作为参数,它会导致#VALUE! 错误。 但是,如果我把NOW()放在一个单元格中,并将其作为parameter passing给它。 我已经在Excel 2007和Excel 2016中尝试了这一点,他们都有相同的结果。 我做了一个简单的函数来突出显示(而不是我原来的function): #值! 错误 更令人困惑的是,如果我在代码中放入一个Stop,并且通过它,NOW()的值确实会被传入,函数将正确运行。 但在电子表格中,它仍然显示为#VALUE! 错误。 传入的价值 有谁知道为什么发生这种情况,并使其工作? 就像我说的,我知道我可以添加一个= NOW()列,并使用该单元格作为参数,但我希望能够做到这一点,而不需要额外的步骤。