vba - VBA 将结果 IF 语句作为列表放入一个单元格
问题描述
我想我的问题很简单,但我无法弄清楚。翻译:Ja=Yes / Nee=No
因此,如果单元格 A2 显示“Nee”,则 J2 中应该有一个句子,如果不是,则什么也不做。这对于每行中的所有其他单元格都是相同的。
我让我的代码运行它执行 if 语句。但它只需要合并到一个单元格中。
带有示例的 Excel 屏幕截图如下所示:
代码:
Sub SampleMacro()
' Get the last row
Dim startRow As Long, lastRow As Long
startRow = 2
lastRow = Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Row
Dim i As Long, Wat As String
Dim j As Long, Waarom As String
Dim sClass As String
Dim tClass As String
' Go through the parameter columns
For i = startRow To lastRow
Wat = Sheet1.Range("A" & i).Value
' Check parameters and classify accordingly
If Wat = "Nee" Then
sClass = " Er wordt in de cookie policy niet uitgelegd wat cookies zijn."
Else
sClass = ""
End If
For j = startRow To lastRow
Waarom = Sheet1.Range("B" & j).Value
If Waarom = "Nee" Then
tClass = " Waarom ze nuttig zijn is hier niet omschreven."
Else
tClass = ""
End If
' Write out the class to columns
Sheet1.Range("J" & i).Value = sClass
Sheet1.Range("K" & j).Value = tClass
Next
Next
End Sub
解决方案
您的代码可以简化为:
For i = startRow To lastRow
' Check parameters and classify accordingly
If Sheet1.Range("A" & i).Value = "Nee" Then
Sheet1.Range("J" & i).Value = " Er wordt in de cookie policy niet uitgelegd wat cookies zijn."
End If
' If there's Nee in B column, then append next sentence with new line (Chr(10))
If Sheet1.Range("B" & i).Value = "Nee" Then
Sheet1.Range("J" & i).Value = Sheet1.Range("J" & i).Value & Chr(10) & " Waarom ze nuttig zijn is hier niet omschreven."
End If
Next
推荐阅读
- java - 在多模块 maven 项目中使用自定义 SpotBugs 插件
- javascript - Fiber Web 框架无法发送 ajax 请求
- java - 在 java 中尝试使用外部 jar 文件时遇到困难
- c++ - 如何读回我刚刚写入文件的内容?
- python - 使用python从列中删除字母和特殊字符
- google-places-api - 有没有办法使用 Google Place API 从响应中获取常见的 HTTP 代码(2xx、4xx 等)?
- html - 如何在移动视图中制作响应式表格
- collision - MoveIt:当机器人与障碍物发生碰撞时,如何使用 move_group 节点进行重复规划?
- azure - 使用带有 2FA 的 Microsoft Azure 从命令行切换租户
- php - safari 下载文件而不是打开页面