EXCEL VBA 关于将题库中的答案标红答案的问题,多项选择搞不定。

发布网友 发布时间:2022-04-26 00:25

我来回答

2个回答

热心网友 时间:2023-10-24 12:04

Sub BJ()
Dim iRow, Zn, iAsc, i, j As Long, ArrB
iRow = Range("B65536").End(xlUp).Row
ArrB = Range("B2:B" & iRow).Value
For i = 1 To UBound(ArrB)
    Zn = Len(ArrB(i, 1))
    If Zn > 1 Then
        For j = 1 To Zn
            iAsc = Asc(UCase(Mid(ArrB(i, 1), j, 1)))
            Range("B" & i + 1).Offset(0, iAsc - ).Interior.ColorIndex = 3
        Next
    Else
        iAsc = Asc(UCase(ArrB(i, 1)))
        Range("B" & i + 1).Offset(0, iAsc - ).Interior.ColorIndex = 3
    End If
Next
End Sub

 

热心网友 时间:2023-10-24 12:05

可以双循环啊,外层逐行循环,内层对题目答案进行循环,最多4个嘛,可以判断长度决定循环次数追问单元格内的内容拆分了才能循环吧,具体代码可以提供下吗?

追答不用拆分啊,挨个字符进行判断就行了啊。例如,没时间帮你写详细的,你再试试看
for i=2 to currentSheet.usedrange.rows.count
for j=1 to len(currentSheet.range("B"&i).value)
if left(currentSheet.range("B"&i).value,j)="A",then

With currentSheet.range("C"&i).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
elseif left(currentSheet.range("B"&i).value,j)="B"

.......以此类推
next j

next i

热心网友 时间:2023-10-24 12:04

Sub BJ()
Dim iRow, Zn, iAsc, i, j As Long, ArrB
iRow = Range("B65536").End(xlUp).Row
ArrB = Range("B2:B" & iRow).Value
For i = 1 To UBound(ArrB)
    Zn = Len(ArrB(i, 1))
    If Zn > 1 Then
        For j = 1 To Zn
            iAsc = Asc(UCase(Mid(ArrB(i, 1), j, 1)))
            Range("B" & i + 1).Offset(0, iAsc - ).Interior.ColorIndex = 3
        Next
    Else
        iAsc = Asc(UCase(ArrB(i, 1)))
        Range("B" & i + 1).Offset(0, iAsc - ).Interior.ColorIndex = 3
    End If
Next
End Sub

 

热心网友 时间:2023-10-24 12:05

可以双循环啊,外层逐行循环,内层对题目答案进行循环,最多4个嘛,可以判断长度决定循环次数追问单元格内的内容拆分了才能循环吧,具体代码可以提供下吗?

追答不用拆分啊,挨个字符进行判断就行了啊。例如,没时间帮你写详细的,你再试试看
for i=2 to currentSheet.usedrange.rows.count
for j=1 to len(currentSheet.range("B"&i).value)
if left(currentSheet.range("B"&i).value,j)="A",then

With currentSheet.range("C"&i).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
elseif left(currentSheet.range("B"&i).value,j)="B"

.......以此类推
next j

next i

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com