『型が一致しません13』(あ)
Sub 名前けし()
If Range("AB15:AB250").Value = "名前" Then Range("AB5").ClearContents ElseIf Range("AB15:AB250").Value = "名前2" Then Range("AB5").ClearContents Else Range("AB5").Value = "名前" End If End Sub
型が一致しませんと表示されたんですがどこが間違っているか分からず…
< 使用 Excel:unknown、使用 OS:unknown >
参考
https://learn.microsoft.com/ja-jp/office/vba/api/excel.range.value
(ゆたか) 2023/09/27(水) 14:53:26
If Range("AB15:AB250").Value = "名前" Then
等号の左辺は配列で、右辺が単数値だからでは。(ワークシート上の数式じゃないですからねぇ)
一体、それで何をやりたい(判定したい)のですか?
(半平太) 2023/09/27(水) 14:55:55
・・という事は、山田さんの名前は、初めはAB5に入っているってことですよね?
すると、こんな事かな?
Sub 名前けし() Dim targetName
targetName = Range("AB5").Value
If Application.CountIf(Range("AB15:AB250"), targetName) Then Range("AB5").ClearContents ElseIf Application.CountIf(Range("AB15:AB250"), targetName & "半休") Then Range("AB5").ClearContents End If End Sub
(半平太) 2023/09/27(水) 15:14:34
>因みに関数でもできますか
ワークシート関数でセルをクリアにするなんて事はできません。 (ユーザー定義関数なら可能・・まぁ、実体はVBAですからねぇ・・)
Sub 名前けし() Dim targetCell As Range
For Each targetCell In Range("AB5:AB14") If targetCell <> "" Then '空白ならスキップ
If Application.CountIf(Range("AB15:AB250"), targetCell) Then targetCell.ClearContents ElseIf Application.CountIf(Range("AB15:AB250"), targetCell.Value & "半休") Then targetCell.ClearContents End If End If Next End Sub
※実地テストはしておりません。あしからず。
(半平太) 2023/09/27(水) 15:47:35
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.