When I fill the multirow cell whose horizontal lines inside the cell are drawn with \hhline{~}, there will be blanks, I try to fix it by >{\arrayrulecolor{gray}\doublerulesepcolor{gray}}=, but the color of vertical lines will be messed also.
\documentclass{article}
\usepackage[table]{xcolor}
\usepackage{multirow, makecell}
\usepackage{colortbl}
\usepackage{dashrule}
\usepackage{ehhline}
\newcommand{\cdl}[2][black]{\leaders\hbox{\textcolor{#1}{\hdashrule{0.9mm}{#2}{0.3mm 0.3mm 0.3mm 0mm}}}\hfil}
\newcommand{\crs}[2][black]{\leaders\hbox{\textcolor{#1}{\rule{0.1pt}{#2}}}\hfil}
\newcommand{\vcl}[2][black]{\color{#1}\vrule width #2}
\setlength\doublerulesep{0.1pt}
\begin{document}
\begin{tabular}{!{\vcl{3pt}}c!{\vcl[green]{3pt}}c!{\vcl[yellow]{3pt}}}
\hhline{
!{\cdl[red]{1pt}}
!{\crs[red]{1pt}}
}
\multicolumn{1}{!{\vcl[green]{3pt}}c!{\vcl{2pt}}}{\cellcolor{gray}test}
& \multicolumn{1}{c!{\vcl{3pt}}}{test}\\
\hhline{
!{\cdl[orange]{1pt}}
!{\crs[teal]{2pt}}
}
\cellcolor{gray} & test\\
\hhline{
>{\arrayrulecolor{gray}\doublerulesepcolor{gray}}%
=%
!{\crs[red]{1pt}}
}
\multirow{-2}{*}{\cellcolor{gray} test some thing}
& test\\
\hhline{
!{\cdl[red]{1pt}}
!{\crs[red]{1pt}}
}
\end{tabular}
\end{document}
I nearly successed by set hhline to
\hhline{
>{\rule{3pt}{1pt} \kern -3pt \arrayrulecolor{gray}\doublerulesepcolor{gray}}%
=
!{\crs[red]{1pt}}
}
but there is a small blank sep.

Solved but why?
I solve the problem, but I don't know why this will work
\hhline{
>{\rule{3pt}{1pt} \kern -3.3pt \arrayrulecolor{gray}\doublerulesepcolor{gray}}%
=
>{\kern -3pt \textcolor{green}{\rule{3pt}{1pt}}}%
!{\crs[red]{1pt}}
}
I just need change the width of the rule to make it the same with the width of the vertical line, but what are -3.3pt and -3pt represent?

|in the hhline before the grey-– David Carlisle Apr 20 '20 at 09:35